Node.js获取本机Mac地址的两种方案
本文介绍在Node.js中获取本机Mac地址的两种方法。第一种通过第三方getmac库简化调用;第二种利用Node.js内置os模块的networkInterfaces方法,遍历网络接口对象筛选IPv4地址并提取非零Mac地址。
方案一:使用getmac库
首先我们需要引入一个用于获取Mac地址的npm包。
npm install getmac安装完成后,在node_modules目录下会生成getmac文件夹。进入该目录并创建test.js文件,编写测试代码如下:
var npm = require('getmac');//获取mac地址
console.log('npm', npm)
console.log(npm.default())
console.log(npm.isMAC('8c:16:45:25:26:44'))运行后打印结果如下:

输出的0a:00:27:00:00:11即为当前电脑的Mac地址。
方案二:使用os库
此外,还可以不依赖第三方库,直接利用Node.js系统提供的os模块来实现。
Node.js内置的os模块提供了networkInterfaces方法,
该方法用于返回一个包含网络接口信息的对象。
返回的对象中,每个属性值均为一个数组。
该对象包含所有已分配网络地址的网络接口信息。对象的每个键代表一个网络接口名称,对应的值是一个对象数组,每个对象描述了一个分配的网络地址。这些地址对象包含以下属性:
- address<string>:分配的IPv4或IPv6地址。
- netmask <string>:IPv4或IPv6的子网掩码。
- family <string>:协议版本,IPv4或IPv6。
- mac <string>:网络接口的Mac地址。
- internal <boolean>:若为环回接口或不可远程访问的接口,值为true,否则为false。
- scopeid <number>:IPv6的作用域ID(仅当family为IPv6时存在)。
- cidr <string> 以 CIDR 表示法分配的带有路由前缀的 IPv4 或 IPv6 地址。如果 netmask 无效,则此属性会被设为 null。
我们需要从中提取的IP地址与Mac地址均包含在这些数组结构中。
实现代码如下:
var os=require("os");
var networkInterfaces=os.networkInterfaces();
console.info(networkInterfaces);运行结果如图所示:

解析上述输出数据,即可找到本机的Mac地址。
var os=require("os");
var mac = ''
var networkInterfaces=os.networkInterfaces();
for(var i in networkInterfaces){
for(var j in networkInterfaces[i]){
if(networkInterfaces[i][j]["family"]==="IPv4" && networkInterfaces[i][j]["mac"]!=="00:00:00:00:00:00" && networkInterfaces[i][j]["address"]!=="127.0.0.1"){
mac = networkInterfaces[i][j]["mac"]
}
}
}
console.log(mac) //a6:02:b9:76:93:28总结
本文介绍了Node.js获取本机Mac地址的两种实现方式,更多相关内容请查阅本站过往文章或继续浏览后续内容,感谢支持!
全栈开发中JavaScript与Java怎么协作?前后端技术栈配合解析
2026-11-04 11:08:24
Node.js官网访问慢?国内镜像加速下载方案
2026-11-03 18:57:24
Node.js 连接 MySQL 数据库实现增删改查操作
2026-11-03 14:31:14
Windows系统安装Node.js:下载、配置与环境验证
2026-11-03 14:15:56
Linux (Ubuntu/CentOS) 环境下安装Node.js的常用方法
2026-11-03 10:18:39
