如何标识一台机器
在开发中,有时候我们需要获取唯一标识本机的序列号,你可能会想到如下几种
1) MAC地址
2) CPU ID
3) 硬盘ID
MAC地址
因为MAC地址可能会被修改,而且本机可能会有多张网卡,同时网卡的数量会随着网卡被启用或禁用而发生变化,所以暂时就不考虑使用MAC地址作为本机硬件标识了。
CPU ID
这个看起来不错,但是有个问题:CPU厂商有时候为了规避隐私问题,会对同一批次的CPU打上同一个ID,这样就不能通过CPU ID唯一的标识机器了。
硬盘ID
每一块硬盘在出厂的时候,厂商会烧录一个唯一的ID到硬盘中,这个标识通常可以获取到,并且可以作为机器ID,但是在比较老的硬盘上可能没有这个ID,另外在虚拟机中,也可能是获取不到硬盘ID的。哎,这种方法也是个问题。
综合以上的描述,我建议使用多种方法联合起来对机器进行标识,防止其中一个标识因无法获取而无法最终实现硬件唯一性标识。
下面我们通过WMI的方法来获取硬件序列号,这里以CPU ID为例。
WMI
WMI(Windows Management Instrumentation,Windows 管理规范)是一项核心的 Windows 管理技术;用户可以使用 WMI 管理本地和远程计算机。
WMI初始化
在使用WMI进行WQL语句查询之前