You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js调用os.networkInterfaces()返回空对象,无法获取客户端MAC地址求助

Node.js os.networkInterfaces() 返回空对象的排查方案

我尝试用Node.js内置模块os.networkInterfaces()获取MAC地址,但代码编译通过后调用始终返回空对象,试过ES模块和CommonJS两种写法:

ES模块写法:

import {networkInterfaces} from 'os';
// ...
const mac = networkInterfaces();

CommonJS写法:

const os = require('os');
const mac = os.networkInterfaces();

可能的原因及解决办法

  • 环境不支持:os.networkInterfaces()只能获取运行Node.js进程的宿主机器的网络接口信息,如果是在浏览器环境(包括Electron渲染进程)、无网卡的容器/沙箱里运行,必然返回空。另外注意:浏览器前端无法获取访客的MAC地址,这是浏览器安全策略的硬性限制,别浪费时间在这个方向上。
  • 权限不足:Linux系统中,若Node.js进程没有读取网络接口信息的权限,也会返回空。可以尝试用sudo运行进程测试,或者检查/sys/class/net目录的访问权限。
  • 无可用网络接口:如果机器上所有网卡都被禁用,os.networkInterfaces()自然返回空。在终端执行ifconfig(Linux/macOS)或ipconfig(Windows),确认有启用的网络接口后再运行代码。

内容的提问来源于stack exchange,提问作者GoldenView

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 07:39:58