node.js - 我可以使用 node.js 获取唯一的服务器机器标识符吗?

标签 node.js mac-address

我想知道是否有办法让 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/

相关文章:

node.js - 是否可以在服务器端node.js上使用jQuery事件?

ios - 如何在 Swift 中获取 iPhone 上的 wifi mac 地址?

c# - 如何在 c# 中以编程方式为 Windows Mobile 6.0 设备获取 MAC 地址

node.js - 使用getmac获取node.js当前机器的mac地址

node.js - 主管 Node .js "Program node app exited with code 0"错误

node.js - knex 查询不断要求安装 sqlite 模块

node.js - 通过 Docker 访问 Web 应用程序时连接被拒绝

node.js - 如何在不强制使用日志库的情况下从 NPM 包进行日志记录

iphone - 是否可以在应用程序中获取当前连接的 WiFi 网络的 SSID 和 MAC 地址

java - 在java中查找给定IP地址或MAC地址的计算机名称、操作系统名称