gpt4 book ai didi

javascript - NodeJS - 离线时获取MAC地址

转载 作者:搜寻专家 更新时间:2023-11-01 00:23:49 25 4
gpt4 key购买 nike

类似于this question in C# , NodeJS 是否可以在断开网络连接时获取计算机的 MAC 地址?

我一直在使用 macaddress模块,当用户连接到网络时效果很好——但如果用户断开连接,macaddress 将不会在某些系统上返回任何地址。

我注意到当用户离线/在线时 os.networkInterfaces() 之间存在一些差异,以及 Windows/Mac 和 Node v10/v12 之间的行为差​​异。我不太确定问题到底出在哪里。

最佳答案

我刚刚用 getmac 测试过模块并离线(和在线)工作正常。

你可以这样试试:

require('getmac').getMac(function(err,macAddress){
if (err) throw err
console.log(macAddress) // 77:31:c2:c5:03:10
})

如果您不想使用模块,您也可以像这样请求每个 mac 地址接口(interface)( Node >= 0.11):

require('os').networkInterfaces()

然后根据您的需要解析它。

结果应该是这样的:

{ lo0:
[ { address: '::1',
netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
family: 'IPv6',
mac: '00:00:00:00:00:00',
scopeid: 0,
internal: true },
{ address: '127.0.0.1',
netmask: '255.0.0.0',
family: 'IPv4',
mac: '00:00:00:00:00:00',
internal: true },
{ address: 'fe80::1',
netmask: 'ffff:ffff:ffff:ffff::',
family: 'IPv6',
mac: '00:00:00:00:00:00',
scopeid: 1,
internal: true } ],
en0:
[ { address: '10.3.162.15',
netmask: '255.255.254.0',
family: 'IPv4',
mac: '77:31:c2:c5:03:10',
internal: false } ],
vboxnet0:
[ { address: '192.168.33.1',
netmask: '255.255.255.0',
family: 'IPv4',
mac: '0a:00:27:00:00:00',
internal: false } ],
en3:
[ { address: '10.3.32.45',
netmask: '255.255.248.0',
family: 'IPv4',
mac: '0c:4d:e7:3d:3d:17',
internal: false } ] }

关于javascript - NodeJS - 离线时获取MAC地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30923556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com