两台Intel机器上的CPU ID相同

Dev*_*tor 6 c#

可能重复:
WIN32_Processor ::是ProcessorId对所有计算机都是唯一的

我正在创建一个具有试用功能的应用程序.要检测某个用户是否已经使用过试用版,应用程序会使用它们连接到我的服务器machineHash.

machineHash功能是这样的:

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

foreach (ManagementObject mo in moc)
{
    if (cpuInfo == "")
    {
        //Get only the first CPU's ID
        cpuInfo = mo.Properties["processorID"].Value.ToString();
        break;
    }
}
return cpuInfo;
Run Code Online (Sandbox Code Playgroud)

但是,它确实将我的处理器ID报告为BFEBFBFF000206A7(在两台不同的Intel机器上,i5和Celeron).谷歌搜索BFEBFBFF000206A7也有点击,所以它不是唯一的.

谁能告诉我为什么这不是唯一的?我不想使用VolumeSerial,C:\因为可以通过简单的命令轻松更改驱动器.

Tit*_*s P 6

不是使用处理器ID,而是将系统的多个ID组合成1个字符串,以便在每次程序发送检查时进行比较.

使用这样的东西:

using System.Management;
ManagementObjectSearcher searcher = new ManagementObjectSearcher(
"select * from " + whatever_id);
Run Code Online (Sandbox Code Playgroud)

所有可以替换whatever_id的值都可以在这里找到:http: //www.codeproject.com/Articles/17973/How-To-Get-Hardware-Information-CPU-ID-MainBoard-I

我会找到一些你想要使用的,其中一些可能是独一无二的,但即使你不使用一个独特的领域,你可以制作组合,这对于大多数意图和目的来说都是独一无二的.