PC 的唯一标识符
Unique Identifier for the PC
我正在搜索设备(即 PC)的唯一标识符。我查看了 Stack Overflow 和其他网站上的许多链接,发现生成的是 UUID 而不是 mac id。但我也发现UUID可能与某些主板没有关联,有时可能无法使用。
我已经将 MAC ID 实现为唯一标识符,但现在我认为这可能不太准确,因为用户的笔记本电脑有时可能连接到 LAN、wifi 或加密狗。每次我都需要知道 machine 的唯一标识符。我还担心当用户使用 Virtual Box 连接时我需要唯一标识符。
如果您使用一个或另一个,接口不会被删除。只需循环 NetworkInterface.getNetworkInterfaces() 并检查是否有相同的 MAC 您注册。
如果您使用的界面未集成到计算机中,则可能会出现问题。说一个可以移除的加密狗。也许保存所有 MAC 地址并检查它们是否存在。不过,您可以将加密狗移到另一台计算机上,但仍然会得到“是”。
如果你想真正通过windows uuid来识别你可以使用cmd命令:
wmic csproduct get UUID
在java中使用Runtime.exec("wmic csproduct get UUID");然后使用 Process 的输出流读取输出并存储它。我还没有测试过,但应该可以。
我正在搜索设备(即 PC)的唯一标识符。我查看了 Stack Overflow 和其他网站上的许多链接,发现生成的是 UUID 而不是 mac id。但我也发现UUID可能与某些主板没有关联,有时可能无法使用。
我已经将 MAC ID 实现为唯一标识符,但现在我认为这可能不太准确,因为用户的笔记本电脑有时可能连接到 LAN、wifi 或加密狗。每次我都需要知道 machine 的唯一标识符。我还担心当用户使用 Virtual Box 连接时我需要唯一标识符。
如果您使用一个或另一个,接口不会被删除。只需循环 NetworkInterface.getNetworkInterfaces() 并检查是否有相同的 MAC 您注册。
如果您使用的界面未集成到计算机中,则可能会出现问题。说一个可以移除的加密狗。也许保存所有 MAC 地址并检查它们是否存在。不过,您可以将加密狗移到另一台计算机上,但仍然会得到“是”。
如果你想真正通过windows uuid来识别你可以使用cmd命令:
wmic csproduct get UUID
在java中使用Runtime.exec("wmic csproduct get UUID");然后使用 Process 的输出流读取输出并存储它。我还没有测试过,但应该可以。