node-machine-id生成的机器ID相同

发表于: 2025-03-06 15:56:30

简介: 通过node-machine-id库生成的机器ID,在不同设备上相同

问题描述

在不同的设备上,使用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)
}

最后更新于:2025-03-06 15:57:22