2012-03-27 83 views
0

唯一ID(指纹),我遇到throuble而我不得不产生一个PC唯一的ID与我的WinForm应用程序C#产生PC净

最的问题都来自于虚拟机。我用这个code

即使我评论CPUID代码,它每次都会改变我重新启动虚拟机(VirtualBox)。

考虑到我也可以使用虚拟机,如何获取独特的指纹?

感谢

+0

为什么不使用MAC地址?请参阅http://stackoverflow.com/questions/9544018/get-mac-address-of-computer – Diego 2012-03-27 16:47:14

回答

0

该解决方案有一些潜在的警告,但你可以使用任何MAC地址或硬盘的序列号,或两者:

下面的代码来获取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; 
}