唯一的电脑ID

Stu*_*ens 30 system-identification

我正在寻找一种获得独特计算机ID的方法.

根据这篇文章,我不能为此目的使用处理器ID.我可以拿主板ID吗?识别计算机的最佳方法是什么?

djd*_*d87 37

就像你说CPU Id不是唯一的一样,但是你可以将它与另一个硬件标识符一起使用来创建你自己的唯一密钥.

参考组件 System.Management

因此,使用此代码获取CPU ID:

string cpuInfo = string.Empty;
ManagementClass mc = new ManagementClass("win32_processor");
ManagementObjectCollection moc = mc.GetInstances();

foreach (ManagementObject mo in moc)
{
     cpuInfo = mo.Properties["processorID"].Value.ToString();
     break;
}
Run Code Online (Sandbox Code Playgroud)

然后使用此代码获取HD ID:

string drive = "C";
ManagementObject dsk = new ManagementObject(
    @"win32_logicaldisk.deviceid=""" + drive + @":""");
dsk.Get();
string volumeSerial = dsk["VolumeSerialNumber"].ToString();
Run Code Online (Sandbox Code Playgroud)

然后,您可以组合这两个序列来获取该机器的uniqueId:

string uniqueId = cpuInfo + volumeSerial;
Run Code Online (Sandbox Code Playgroud)

显然,获得ID的硬件组件越多,唯一性就越大.但是,同一台机器具有相同的CPU串行和硬盘串行的可能性已经很小.

  • 这不会产生唯一ID.到目前为止,我们已经在从戴尔购买的15台机器上进行了测试,并且已经有3台具有相同ID (6认同)

And*_*ySw 5

网络适​​配器的MAC地址?Windows 操作系统安装的安全标识符 (SID)?(假设它是您正在处理的窗口)您能否为每台 PC 生成一个 GUID?

你到底想达到什么目的?

  • 如果他试图为许可机制执行此操作,则可以非常轻松地更改 SID 和 MAC 地址,因此是不可接受的。 (3认同)