完整的答案在下面,但基本上你可以通过以下方式在 vanilla node.js 中获取该信息:
require('os').networkInterfaces()
这将为您提供有关系统上网络设备的所有信息,包括每个接口的 MAC 地址。
您可以进一步将范围缩小到 MACS:
JSON.stringify( require('os').networkInterfaces(), null, 2).match(/"mac": ".*?"/g)
更进一步,到纯 MAC 地址:
JSON.stringify( require('os').networkInterfaces(), null, 2).match(/"mac": ".*?"/g).toString().match(/\w\w:\w\w:\w\w:\w\w:\w\w:\w\w/g)
最后一个会给你一个类似数组的匹配对象,形式如下:
['00:00:00:00:00:00', 'A8:AE:B6:58:C5:09', 'FC:E3:5A:42:80:18' ]
第一个元素是您的本地或本地界面。
我使用https://www.miniwebtool.com/mac-address-generator/随机生成其他公共示例
如果您想更“正确”(或将其分解为更易于消化的步骤):
var os = require('os');
var macs = ()=>{
return JSON.stringify( os.networkInterfaces(), null, 2)
.match(/"mac": ".*?"/g)
.toString()
.match(/\w\w:\w\w:\w\w:\w\w:\w\w:\w\w/g)
;
}
console.log( macs() );
基本上,您正在获取接口数据对象并将其转换为 JSON 文本字符串。然后你得到一个mac地址的匹配对象并将其转换为文本字符串。然后,您只将 MAC 地址提取到一个可迭代的匹配对象中,该对象仅包含每个元素中的每个 MAC。
确实有更简洁的方法可以做到这一点,但这种方法可靠且易于阅读。