现在需要根据不同的机器生成一个唯一的序列号,尝试读取了CPU、BIOS、主板、硬盘号
用的using System.Management;中的相关方法,如读取硬盘号:select * from Win32_PhysicalMedia。
1、CPU ID基本上都是重复的,据查貌似Intel从P4开始没有唯一的编号了。
2、BIOS和主板基本上也是重复的,而且读不出来的概率很高。
3、硬盘号:vista及w7下面居然啥也没有。而且xp也有很多没有。
4、MAC地址不适合,用户太容易换网卡了,尤其出了3G。请问,目前如何根据不同的机器生成唯一标识。貌似能用的都用上了。。求大伙帮忙,如有解决方案,再重分酬谢。。谢谢。

解决方案 »

  1.   

    用MS的策略,多做几个硬件的记录,如CPU、硬盘、网卡。然后其中换的硬件少于X个就不管,换X个就视为在新机机上安装,要重新注册
      

  2.   

    从客户端生成GUID码吧,这个唯一
      

  3.   

    关键是N多机器获得不了硬盘序列号,所以这个方法也是白搭客户端生成GUID,如何保证下次安装时同一台机器还能生成一样的?