我想知道是否有办法让 NODE 检索它正在运行的服务器的 MAC 地址。
最佳答案
Node 没有内置的被访问这种低级数据。
但是,您可以执行 ifconfig
并解析其输出或为 Node 编写 C++ 扩展,提供检索 MAC 地址的函数。更简单的方法是阅读 /sys/class/net/eth?/address
:
var fs = require('fs'),
path = require('path');
function getMACAddresses() {
var macs = {}
var devs = fs.readdirSync('/sys/class/net/');
devs.forEach(function(dev) {
var fn = path.join('/sys/class/net', dev, 'address');
if(dev.substr(0, 3) == 'eth' && fs.existsSync(fn)) {
macs[dev] = fs.readFileSync(fn).toString().trim();
}
});
return macs;
}
console.log(getMACAddresses());
该函数返回一个包含所有eth*
设备的mac 地址的对象。如果您想要所有设备都有一个,即使它们是例如称为 wlan*
,只需删除 dev.substr(0, 3) == 'eth'
检查。
关于node.js - 我可以使用 node.js 获取唯一的服务器机器标识符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11173042/