嗨,我正在尝试编写一个 java 小程序,它将获取一些硬件信息、mac 地址(我已经完成)、cpuid 主板序列号和硬盘驱动器序列号。我知道我需要使用 jna 来做到这一点。我的问题是,在 c/c++ 中有没有办法获取不依赖于平台的信息?我所看到的一切都只能在 Windows 上工作,我需要它在所有平台上工作。我需要这些信息,以便创建该计算机的唯一 ID。任何帮助或正确方向的观点将不胜感激。
问问题
1242 次
2 回答
1
我的问题是,在 c/c++ 中有没有办法获取不依赖于平台的信息?
不可能。哎呀,在同一个 PC 市场中,查询例如 BIOS 版本从一个 MB 制造商/OEM 到另一个不同。而且,如果 PC 仍然有 BIOS - 不是较新的 EFI。
Sun/SPARC 是一个明显的例外:它们的 H/W 具有相对唯一的 ID,主要用于库存目的。它并不完全是唯一的(引出了另一点),因为这可能会推断出隐私,Sun 别无选择,只能确保它不是全球唯一的。
IOW 硬件的唯一标识在世界许多地方都是非法的,因此不存在可靠(最不便携)的方法来实现您想要的。
我想说绑定到 MAC 地址应该已经足够好了。而且这些信息在几乎所有平台上都很容易访问。只要您的许可证检查足够宽松,让用户有足够的时间接收新的许可证密钥(在硬件更换的情况下),应该不会有什么问题。
于 2010-08-06T18:55:13.007 回答
1
有一个名为OSHI的项目旨在做到这一点。它正在寻找编写 *nix 实现的贡献者。
于 2010-10-01T12:24:22.107 回答