【问题标题】:Unique Identifier for the PC [duplicate]PC的唯一标识符[重复]
【发布时间】:2016-03-03 13:38:44
【问题描述】:

我正在搜索设备的唯一标识符,即 PC。我查看了 Stack Overflow 和其他网站上的许多链接,发现生成的是 UUID 而不是 mac id。但我也发现UUID可能与某些主板没有关联,有时可能不起作用。

我已将 MAC ID 实现为唯一标识符,但现在我认为这可能无法非常准确地工作,因为用户的笔记本电脑有时可能会连接到 LAN、wifi 或加密狗。并且每次我都需要知道机器的唯一标识符。当用户使用 Virtual Box 连接时我需要唯一标识符时,我也很担心。

【问题讨论】:

  • 这听起来更像是一个硬件问题而不是编程问题
  • “UUID 可能与某些主板没有关联”是什么意思?如果您谈论的是在这些 PC 上运行的软件,您可以生成一个标识符,将其存储在一个文件中并每次都使用该标识符。
  • 感谢您的快速回复。当我在机器上生成唯一 ID 并存储它时,如果该文件传输到该机器,它可以在任何其他机器上使用

标签: java hardware mac-address


【解决方案1】:

如果您使用一个或另一个,接口不会被删除。只需循环 NetworkInterface.getNetworkInterfaces() 并检查一个是否具有您注册的相同 MAC。

问题可能是如果您使用的接口未集成到计算机中。说一个可以移除的加密狗。也许保存所有 MAC 地址并检查它们是否存在。尽管如此,您可以将加密狗移动到另一台计算机上,但仍然可以。

如果你想真正通过windows uuid来识别可以使用cmd命令:

wmic csproduct get UUID

在 java 中使用 Runtime.exec("wmic csproduct get UUID");然后用Process的输出流读取输出并存储。我还没有测试它,但它应该可以工作。

【讨论】:

  • 感谢 casper 的回答。我实施了您的解决方案,它运行良好。只是想确认如果我在 PC 上安装了虚拟机或者我使用的是 Windows 以外的其他操作系统,它将以同样独特的方式工作.
  • 换个操作系统不行!或者,如果您使用虚拟机!它绑定到您计算机上安装的窗口。
  • 那假定你使用的是命令方式。网络 MAC ID 没问题
  • 我在所有三个平台上都使用 UUID 解决了这个问题。windows、linux 和 mac。我认为 UUID 对于安装在机器上的虚拟框也是唯一的。所以它作为唯一标识符工作。谢谢。
  • 您在 linux 中执行什么命令以获得与上述命令类似的输出 @RaviBrahmbhatt ?
猜你喜欢
  • 1970-01-01
  • 2011-03-27
  • 2013-04-13
  • 1970-01-01
  • 2013-10-01
  • 2011-11-08
  • 2015-08-31
  • 1970-01-01
相关资源
最近更新 更多