获取电脑的processorid和machineguid信息(设备唯一标识)

方法1

下载并运行“获取电脑序列号.bat”文件,会自动在当前文件夹生成“computerinfo.txt”文件,在该文件中可以找到相关信息。(提取码:biv3)

获取设备唯一标识方法

CPU ID

在Windows系统中通过命令行运行“wmic cpu get processorid”就可以查看CPU ID。
目前CPU ID也无法唯一标识设备,Intel现在可能同一批次的CPU ID都一样,不再提供唯一的ID。而且经过实际测试,新购买的同一批次PC的CPU ID很可能一样。这样作为设备的唯一标识就会存在问题。

硬盘序列号

在Windows系统中通过命令行运行“wmic diskdrive get serialnumber”可以查看。
硬盘序列号作为设备唯一ID存在的问题是,很多机器可能存在多块硬盘,特别是服务器,而且机器更换硬盘是很可能发生的事情,更换硬盘后设备ID也必须随之改变,不然也会影响授权等应用。因此,很多授权软件没有考虑使用硬盘序列号。而且,不一定所有的电脑都能获取到硬盘序列号。

自定义算法生成唯一ID

可以使用自制的一个特定算法(如GUID、或者一定位数的随机数)生成唯一的ID,然后写入到注册表或者设备上,作为其唯一ID。
这种方法不依赖任何硬件特征,唯一性也可以自己完全控制,不过纯软件的实现缺点是这个ID很容易伪造,也很容易擦除;而且很可能还需要在线验证,后台存储所有ID的服务器必须保持在线。

Windows的产品ID(ProductId)

在“控制面板\系统和安全\系统”的最下面就可以看到激活的Windows产品ID信息,另外通过注册表“HKEY_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion”也可以看到看到“ProductId”字段。
不过这个产品ID并不唯一,不同系统或者机器重复的概率也比较大。虚拟机中克隆的系统,使用同一个镜像安装激活的系统,其产品ID就可能一模一样。经过实测,笔者在两台Thinkpad笔记本上发现其ProductId完全一样。

MachineGUID

Windows安装时会唯一生成一个GUID,可以在注册表中搜索“MachineGuid”字段获取其值。
这个ID作为Windows系统设备的唯一标识不错,不过值得注意的一点是,与硬件ID不一样,这个ID在重装Windows系统后应该不一样了。这样授权软件在重装系统后,可能就需要用户重新购买授权。

主板smBIOS UUID

在Windows系统中通过命令行运行“wmic csproduct get UUID”可以查看。
主板UUID是很多授权方法和微软官方都比较推崇的方法,即便重装系统UUID应该也不会变(笔者没有实测重装,不过在一台机器上安装双系统,获取的主板UUID是一样的,双系统一个windows一个Linux,Linux下用“dmidecode -s system-uuid”命令可以获取UUID)。
但是这个方法也有缺陷,因为不是所有的厂商都提供一个UUID,当这种情况发生时,wmic会返回“FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF”,即一个无效的UUID。

‘wmic’ 不是内部或外部命令,也不是可运行的程序 解决方法

在环境变量中查看变量名Path下的变量值是否有以下信息:

%SystemRoot%;%SystemRoot%\system32;%SystemRoot%\System32\Wbem

如没有复制(Ctrl+C)、粘贴(Ctrl+V)→确定,再重新打开cmd即可。

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
获取电脑唯一机器码是一种有争议的做法,因为在大多数情况下,它可能会侵犯个人隐私。但是,如果你有合适的权限和合法的理由,你可以使用一些技术手段来获取电脑唯一机器码。 在JavaScript中,获取电脑唯一机器码的方法取决于具体的场景和需求。以下是一些常见的方法: 1. 使用浏览器指纹技术:浏览器指纹是一种通过收集浏览器特征来识别用户的技术。你可以使用JavaScript代码收集浏览器的一些特征,例如用户代理字符串、屏幕分辨率、操作系统、浏览器插件等等,然后将这些特征哈希成一个唯一标识符。这个标识符可以用作机器码,但是它并不是完全可靠和唯一的。 以下是一个使用浏览器指纹技术获取机器码的示例代码: ``` var fingerprint = new Fingerprint().get(); console.log(fingerprint); ``` 2. 使用ActiveX控件:在IE浏览器中,你可以使用ActiveX控件来获取硬件信息,例如CPU序列号、硬盘序列号等等。以下是一个使用ActiveX控件获取机器码的示例代码: ``` var cpuID = new ActiveXObject("WbemScripting.SWbemLocator").ConnectServer().ExecQuery("SELECT ProcessorId FROM Win32_Processor").ItemIndex(0); var diskID = new ActiveXObject("WbemScripting.SWbemLocator").ConnectServer().ExecQuery("SELECT SerialNumber FROM Win32_PhysicalMedia").ItemIndex(0); var machineID = cpuID + diskID; console.log(machineID); ``` 3. 使用Node.js模块:如果你在Node.js环境中运行JavaScript代码,你可以使用一些第三方模块来获取机器码。例如,`node-machine-id`模块可以获取硬件ID、网络适配器MAC地址、CPU序列号等等信息,并将它们哈希成一个唯一标识符。 以下是一个使用`node-machine-id`模块获取机器码的示例代码: ``` var machineID = require('node-machine-id').machineIdSync(); console.log(machineID); ``` 需要注意的是,以上方法都不是完全可靠和唯一的,因为它们都可以被模拟或伪造。如果你需要获取更可靠和唯一的机器码,建议使用一些专门的硬件安全模块或数字证书来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值