ManagementClass mc = new ManagementClass("Win32_Processor");
            ManagementObjectCollection moc = mc.GetInstances();
            string strID = null;
            foreach (ManagementObject mo in moc)
            {
                strID = mo.Properties["ProcessorId"].Value.ToString();
                break;
            }
            textBox1.Text = strID;我用了以上方法 但是经过测试 发现 并不是唯一的求
  怎么才能获取唯一的标识!!!

解决方案 »

  1.   

    我在本机和一台远程server上的结果是:
    BFEBFBFF000006FB
    BFEBFBFF000006FD不一样
      

  2.   


    你多试几个!!
    我自己的是台式机  BFEBFBFF0001067A
    我同学的 是联想笔记本 跟我一样 BFEBFBFF0001067A
      

  3.   

    Intel的唯一, AMD的不唯一。然后Intel的要折腾下才能唯一。Intel官网有个关于 CPUID指令的描述文档可以看下。只不过是汇编的。但是可以用vc嵌入汇编写出来, 然后P/INVOKE过来。
      

  4.   

    http://topic.csdn.net/t/20030227/16/1473962.html
    http://hi.baidu.com/wukongafei/blog/item/25e7bb265e6fc41e8a82a188.html
      

  5.   

    那如果不安网卡的话  不就用不了了么!
    一台计算机 没网卡 还可以用 没CPU 就没法用了!
      

  6.   

    16、17、20和21楼,那CPU的序列号确实是不唯一的。这是个事实啊。网卡的物理地址确实全球唯一的。电脑上的组件也就这个是唯一的了啊。硬盘的序列号和主板号甚至都可以通过软件来修改。另外说一下,用网卡的物理地址不一定要联网的啊
      

  7.   

    下面是详细说明:
    MAC(Media Access Control, 介质访问控制)MAC地址是烧录在Network Interface Card(网卡,NIC)里的.
    MAC地址,也叫硬件地址,是由48比特长(6字节),16进制的数字组成.
    0-23位是由厂家自己分配.24-47位,叫做组织唯一标志符(organizationally unique ,是识别LAN(局域网)节点的标识。
    其中第40位是组播地址标志位。网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。也就是说,在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一般也是全球唯一的。比如,著名的以太网卡,其物理地址是48bit(比特位)的整数,如:44-45-53-54-00-00,以机器可读的方式存入主机接口中。以太网地址管理机构(除了管这个外还管别的)(IEEE)(IEEEE:电气和电子工程师协会)将以太网地址,也就是48比特的不同组合,分为若干独立的连续地址组,生产以太网网卡的厂家就购买其中一组,具体生产时,逐个将唯一地址赋予以太网卡。形象的说,MAC地址就如同我们身份证上的身份证号码,具有全球唯一性。 另外,现在大部分电脑都是带网卡的。当然也有个别是不带网卡的。这样你可以通过网卡物理地址/CPU序列号来实现你的功能,也就是如果没有读取到网卡信息可以转而去读CPU序列号来作为标示。
      

  8.   

    MAC确实是全球唯一,不过依然可以伪造,关键是楼主想要这个唯一的ID做什么?
      

  9.   

    MAC很容易伪造的……要标识唯一的机器似乎没法子啊……
    那干脆试试多弄几个合起来比如: MAC+CPUID+硬盘序列号+一些零配件的生产日期……自己弄一个算法……
      

  10.   

    我觉得其实lz你只是要唯一标识一台机器么?还是重装系统之后依然要能够标志?如果只是要得到一个唯一的ID, 你可以create一个GUID就行了。
    如果不涉及到永远绑定在这个机器, 重装系统依然要能够识别什么的。或者你看下操作系统的key吗
      

  11.   

    up ,我的程序用的是硬盘的序列号,但是在获得序列号的时候在VISTA系统下可能会出现问题。比较同意23楼的方法。
      

  12.   

    cpu的标识号的确不是唯一的,估计你是想标示每一台电脑,可以采用硬盘序号+网卡序号+主板序号进行运算的方法
      

  13.   

    MAC地址,可能是唯一,但它会变,这是在我的软件里验正过