代码之家  ›  专栏  ›  技术社区  ›  StuffHappens

唯一计算机ID

  •  29
  • StuffHappens  · 技术社区  · 15 年前

    我正在寻找一种方法来获得唯一的计算机ID。

    根据 this post 我不能为此使用处理器ID。我可以拿主板ID吗?识别计算机的最佳方法是什么?

    3 回复  |  直到 7 年前
        1
  •  38
  •   Valamas ConsultUtah    11 年前

    正如您所说的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;
    }
    

    然后使用以下代码获取HD ID:

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

    然后,您可以将这两个序列组合起来,以获得该机器的唯一ID:

    string uniqueId = cpuInfo + volumeSerial;
    

    显然,获得的硬件组件ID越多,唯一性就越大。然而,同一台机器拥有相同CPU序列号和硬盘序列号的可能性已经微乎其微。

        2
  •  5
  •   AndySw    15 年前

    windows操作系统安装的安全标识符(SID)?(假设你面对的是窗户) 你能为每台电脑生成一个GUID吗?

    你到底想达到什么目的?

        3
  •  4
  •   Daniel Goldberg    15 年前

    主板ID是一个非常独特的标识符。另一个选择是使用网卡的MAC地址,这是非常独特的。

    推荐文章