2012-03-27 31 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; 
}