我遇到了麻烦,而我必须使用我的WinForm应用程序C#为PC生成唯一的ID#
大多数问题来自虚拟机。我用这个code。
即使我评论CPUID代码,它每次重新启动虚拟机(VirtualBox)时都会更改。
考虑到我也可以使用虚拟机,如何才能获得独特的指纹?
由于
答案 0 :(得分:0)
此解决方案有一些潜在的警告,但您可以使用MAC地址或HDD的序列号,或两者兼而有之:
以下是获取MAC地址的代码:
/// <summary>
/// returns the mac address of the first operation nic found.
/// </summary>
/// <returns></returns>
private string GetMacAddress()
{
string macAddresses = "";
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
{
if (nic.OperationalStatus == OperationalStatus.Up)
{
macAddresses += nic.GetPhysicalAddress().ToString();
break;
}
}
return macAddresses;
}
以下是获取硬盘序列号的代码:
using System.Management;
public string GetHDDSerial()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
ManagementObjectCollection managementObjects = searcher.Get();
foreach (ManagementObject obj in managementObjects)
{
if (obj["SerialNumber"] != null)
return obj["SerialNumber"].ToString();
}
return string.Empty;
}