如何在C#中生成系统(PC /笔记本电脑)硬件唯一ID?
请注意:所有系统的配置都相同。
答案 0 :(得分:2)
答案 1 :(得分:0)
通常,最可靠的方法之一是查看您是否无法获取网卡的MAC地址。通常这些都是唯一的(除非您还将所有MAC地址配置为相同,在这种情况下您将遇到更大的问题:))但我先说出之前的评论。如果这是复制保护,请不要这样做。用户在切换网卡或退出PC以转移到更新的硬件时会感到沮丧。
答案 2 :(得分:0)
您可以使用“Microsoft Windows SDK”工具“GUID生成器”( guidgen.exe )以编程方式生成GUID。此工具有不同的方式来表示生成的GUID,因此您可以在应用程序中进一步使用它。
答案 3 :(得分:0)
我想而不是MAC地址,因为它基于可以更改的外围设备,您可以使用处理器和放大器。用于识别系统的主板ID,因为它们只会在损坏时更改,并在更改时创建新系统
Func<string> SystemId = () =>
{
ManagementObjectCollection mbsList = null;
ManagementObjectSearcher mbs = new ManagementObjectSearcher("Select * From Win32_processor");
mbsList = mbs.Get();
string id = "";
foreach (ManagementObject mo in mbsList)
{
id = mo["ProcessorID"].ToString();
}
ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");
ManagementObjectCollection moc = mos.Get();
string motherBoard = "";
foreach (ManagementObject mo in moc)
{
motherBoard = (string)mo["SerialNumber"];
}
string uniqueSystemId = id + motherBoard;
return uniqueSystemId;
};
Console.WriteLine(SystemId());
甚至处理器也可以更新,以便可以忽略+我知道甚至微软过去都有主板ID识别/激活窗口。