我正在构建一个Java桌面应用程序,我希望能够唯一地识别当前运行代码的机器。 (它不需要是任何个人数据;它只需要能够将一台机器与另一台机器区分开来,并且确保在机器保持不变的情况下它不会改变,缺少重新安装操作系统。)理想情况下,它将与平台无关。关于如何做到这一点的任何建议?
答案 0 :(得分:1)
您可以使用网络硬件的MAC地址。通常情况下,这将在操作系统重新安装后继续存在。
几年前,我为测试自动化编写了自己的实验室管理软件,并且必须唯一地识别机器。他们从已知的网络共享中获取脚本,文件名与其MAC地址相匹配。我这样做是因为我正在测试操作系统设置,我的自动化必须能够重新启动。
这个例子似乎表明了如何做到这一点。但是我不使用Java,所以我不能告诉你它是旧样式,还是有更好的方法:
http://www.kodejava.org/examples/250.html
请注意,如果您正在寻求解决与软件许可相关的问题,那么这绝不是防黑客攻击。实际上,您可以欺骗任何唯一的硬件标识符。
答案 1 :(得分:0)
您可以让应用程序在安装时创建一个guid / uuid,并将其存储在需要此唯一ID的地方。看看java.util.UUID
是否用Java创建它们。
答案 2 :(得分:0)
this SO question suggest many approaches的答案。最常见的建议是使用MAC地址。从我所知道的情况来看,似乎并没有一种100%可靠的方式 - 我认为你必须打电话来跟踪你需要跟踪回归用户的程度以及你希望在实施上花费多少精力这个功能。
答案 3 :(得分:0)
使用计算机的MAC地址。它已经是(某种程度上)唯一的标识符。
此blog has some details with a UUID课程(与java.util
不同)