在Electron中获取机器码(通常指硬件唯一标识,如CPU序列号、主板序列号、硬盘序列号等),可以使用一些Node.js的原生模块来实现。以下是一些常用的模块和方法:
-
node-machine-id:这个库可以用来获取机器的唯一ID(不一定是硬件序列号,但可以作为机器的唯一标识)。
安装:
npm install node-machine-id
使用:
const { machineId, machineIdSync } = require('node-machine-id'); // 异步获取机器ID machineId().then(id => { console.log(id); }); // 同步获取机器ID let id = machineIdSync(); console.log(id);
-
os:Node.js的核心模块
os
提供了一些基本的系统操作函数,但它不提供获取硬件序列号的功能。 -
其他第三方模块:还有一些其他的第三方模块,如
systeminformation
,可以提供更详细的硬件信息。安装:
npm install systeminformation
使用:
const si = require('systeminformation'); // 获取CPU信息 si.cpu() .then(data => console.log(data)) .catch(error => console.error(error)); // 获取系统信息 si.system() .then(data => console.log(data)) .catch(error => console.error(error));
请注意,获取硬件序列号可能会受到操作系统的限制,某些信息在不同的操作系统上可能无法获取,或者需要管理员权限。
在Electron中,你可以在主进程中使用这些模块来获取机器码,然后通过IPC(Inter-Process Communication)机制将其发送到渲染进程,或者在渲染进程中使用remote
模块直接调用主进程的方法来获取。不过,从Electron 10开始,remote
模块默认是禁用的,推荐使用contextBridge
和ipcRenderer
来在不同进程间通信。