ava*_*lon 5 java hash spring uniqueidentifier server
我有一个在服务器X上运行的独立命令行java应用程序.我需要知道运行它的机器的唯一ID.如何获得此ID?也许像哈希一样.我不想保留那里有ID的文件.有没有办法获得这个不依赖于IP,硬件等的唯一ID?
您可以读出服务器的MAC地址并将其用作唯一密钥。
以下代码片段取自http://www.tutego.de/blog/javainsel/2013/12/mac-adressen-auslesen/,显示了可能的实现。
for ( NetworkInterface ni : Collections.list(NetworkInterface.getNetworkInterfaces() ) ) {
byte[] adr = ni.getHardwareAddress();
if ( adr == null || adr.length != 6 )
continue;
String mac = String.format( "%02X:%02X:%02X:%02X:%02X:%02X",
adr[0], adr[1], adr[2], adr[3], adr[4], adr[5] );
System.out.println( mac );
}
Run Code Online (Sandbox Code Playgroud)
很抱歉,来源是德语,但我很确定也有英文文档。
由于评论而编辑:
当然必须考虑到 MAC 地址也可能有重复。
以下链接显示了可能的原因 https://serverfault.com/questions/462178/duplicate-mac-address-on-the-same-lan-possible
无论哪种方式,使用 MAC 地址作为此问题的解决方案都是一种实用的方法。
使用散列方法: http://preshing.com/20110504/hash-collision-probabilities/
或者
GUID:假设 GUID 始终是唯一的是否安全?
也不保证可能重复的风险为 0.0%。
| 归档时间: |
|
| 查看次数: |
1478 次 |
| 最近记录: |