我想获得一个独特的CPU ID(I am trying to get an unique CPU I

2019-08-18 08:58发布

我使用下面的代码来获得一个唯一的CPU ID,我发现各种样品在网络上使用此。 然而。 一次偶然的机会我碰巧拥有2台的华硕笔记本电脑。 一个是四核i5其他的重型I7 octocore都是64台的机器。要我很大的惊喜,他们都产生相同的“独特的” CPU ID ???。

所以这段代码心不是为我工作,是否有其他方法来获得独特的CPU ID或做我在这里做了什么。 我希望得到是一个数字,具体为每进行一次CPU

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

foreach (ManagementObject mo in moc)
{
 if (cpuID == "")
 {
      //Remark gets only the first CPU ID
      cpuID = mo.Properties["processorID"].Value.ToString();

 }
}
return cpuID;

Answer 1:

也许UUID的财产Win32_ComputerSystemProduct对象将满足您的需求。 这应该是每个主板唯一的,只要制造商将其配置在首位。 这不是太常见了CPU的移动更加主板凑凑热闹来,反正。



Answer 2:

尝试

ManagementClass managClass = new ManagementClass("win32_processor");
ManagementObjectCollection managCollec = managClass.GetInstances();

foreach (ManagementObject managObj in managCollec)
{
    cpuInfo = managObj.Properties["processorID"].Value.ToString();
    break;
}

做工精细这里...



Answer 3:

虽然有明确的机器指令要求的CPU的CPUID,这并不保证返回一个唯一的ID,因此这几乎是不可能得到通用唯一CPUID不管你使用哪种方法。 我们检查了低水平的组装程序并获得相同的ID为两个不同的AMD的CPU。



Answer 4:

我得出的结论,这只是不是一个好方法来获得唯一的ID。 因此,而不是该方法中,我写了一个更大的一段代码,其中我请求的系统的更硬件标识符建立一个唯一的标识符。

它的方式这种方法更好,甚至会产生不同的号,如果我想在克隆的硬件上运行它,或者,如果硬件得到改变。 有很多的WMI信息四周,我想这是人们应该寻求创造独特的东西,而不是使用ProcessorID的地方。



Answer 5:

    var mbs = new ManagementObjectSearcher("Select ProcessorID From Win32_processor");
    var mbsList = mbs.Get();

    foreach (ManagementObject mo in mbsList)
    {
        cpuid = mo["ProcessorID"].ToString();
        textBox1.Text=cpuid;
    }


文章来源: I am trying to get an unique CPU ID
标签: c# cpu