问题描述
在不同的设备上,使用
node-machine-id
生成设备码的时候,出现设备码相同的情况
这是因为使用盗版操作系统
导致的,如果使用同一个U盘安装操作系统,就会出现电脑的UUID都是相同的。
解决方案
通过命令行调用wmic csproduct get uuid
,直接从系统硬件中获取UUID
,确保生成的是唯一标识符。
const { exec } = require('child_process')
function getDeviceUUID() {
return new Promise((resolve: (value: string) => void, reject) => {
exec('wmic csproduct get uuid', (error, stdout, stderr) => {
if (error) {
reject(error)
}
else if (stderr) {
reject(error)
}
else {
const uuid = stdout.split('\n')[1].trim()
resolve(uuid)
}
})
})
}
// 使用方法
try {
const uuid = await getDeviceUUID()
console.log(`设备UUID -> ${uuid}`)
}
catch (error) {
console.log('获取UUID失败')
console.log(error)
}