我有一个在服务器X上运行的独立命令行java应用程序。我需要知道运行它的机器的唯一ID。如何获得此ID?也许像哈希一样。我不想保留那里有ID的文件。有没有办法获得这个不依赖于IP,硬件等的唯一ID?
答案 0 :(得分:2)
您可以读出服务器的MAC地址并将其用作唯一密钥。
以下来自http://www.tutego.de/blog/javainsel/2013/12/mac-adressen-auslesen/的代码段显示了可能的实现。
[Route("Mall/{mallId?}/Store/{storeId?}/Products", Name = "Products")]
public ActionResult Products(string mallId = null, long? storeId)
{
return View(products);
}
对不起来源是德语,但我很确定也有英文文档。
由于评论而编辑:
当然必须考虑到MAC地址也可能有重复。
以下链接显示了可能的原因 https://serverfault.com/questions/462178/duplicate-mac-address-on-the-same-lan-possible
无论哪种方式使用MAC地址作为解决此问题的方法都是务实的方式。
使用散列方法: http://preshing.com/20110504/hash-collision-probabilities/
或
GUID:Is it safe to assume a GUID will always be unique?
也不保证可能重复的风险为0.0%。