Я только что опробовал модуль getmac и отлично работает в автономном режиме (и в режиме онлайн).
Вы можете попробовать это так:
require('getmac').getMac(function(err,macAddress){
if (err) throw err
console.log(macAddress) // 77:31:c2:c5:03:10
})
Если вы не хотите использовать модуль, который вы можете также задать для каждого MAC-адрес интерфейса, как это (узел> = 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 } ] }
Я также попытался использовать 'getmac', но он бросает ошибки в Windows - так что это не дает мне большой уверенности. – arthurakay
как насчет использования 'require ('os'). NetworkInterfaces()'? – Gepser
Мои окна обрабатывают MAC '00: 00: 00: 00: 00: 00' только для двух адресов в автономном режиме (в разделе« Псевдо-интерфейс Loopback 1 »). Таким образом, хотя это соответствует этим адресам, когда он находится в сети, это явно не единственный MAC-адрес для машины, и ни один другой сетевой интерфейс не сообщается в автономном режиме. – arthurakay