Это решение имеет некоторые потенциальные предостережений, но вы можете использовать либо МАС-адрес или серийный номер жесткого диска, или оба:
Вот код, чтобы получить 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;
}
Почему бы не использовать MAC-адрес? См. Http://stackoverflow.com/questions/9544018/get-mac-address-of-computer – Diego