如何通过Electron获得唯一的PC ID?

dvtswwa3  于 2023-06-20  发布在  Electron
关注(0)|答案(4)|浏览(323)

是否可以通过Electron获得唯一的PC/设备ID,以便将PC/设备ID保存到云上的MySQL服务器?如果这是不可能的,那么我还有什么选择呢?
这样做的目的是限制他们可以使用Electron App的设备数量。

ogq8wdun

ogq8wdun1#

看一下下面的例子。

import {machineId, machineIdSync} from 'node-machine-id';

// Asyncronous call with async/await or Promise

async function getMachineId() {
    let id = await machineId();
    ...
}

machineId().then((id) => {
    ...
})

// Syncronous call

let id = machineIdSync()
// id = c24b0fe51856497eebb6a2bfcd120247aac0d6334d670bb92e09a00ce8169365
let id = machineIdSync({original: true})
// id = 98912984-c4e9-5ceb-8000-03882a0485e4

您可以查看此软件包automation-stack/node-machine-id以了解更多详细信息。我想这就是你要找的。

a2mppw5e

a2mppw5e2#

看看nodejs中的os模块。
您应该能够将这些值中的一些值串在一起,以正确识别唯一的PC/设备。

bjg7j2ky

bjg7j2ky3#

我创建了一个包来获取本地机器的MAC地址,这应该是获取唯一PC ID的好方法:https://www.npmjs.com/package/macaddress-local-machine

yarn add -D macaddress-local-machine
import macAddr from "macaddress-local-machine";
// Get the first MAC address
const macAddress = macAddr.first();
console.log(macAddress);
// Get all MAC addresses
const macAddresses = macAddr.all();
console.log(macAddresses);

分别返回以下之一或以下数组

interface MACAddress {
  iface: string,
  macAddr: string
}

// Example object:
{
  "iface": "eno2",
  "macAddr": "01:23:45:67:89:ab"
}
pw9qyyiw

pw9qyyiw4#

var sys = require('util')
var exec = require('child_process').exec;
function puts(error, stdout, stderr) {
    console.log(stdout)
}

exec("wmic CPU get ProcessorId", puts);
exec("wmic DISKDRIVE get SerialNumber", puts);

相关问题