
Biblioteca Node.js multiplataforma para recuperar endereços MAC por interface de rede no Linux, macOS e Windows, com APIs assíncrona e síncrona.
Recupere endereços MAC no Linux, OS X e Windows.
Um equívoco comum sobre endereços MAC é que cada host possui um endereço MAC, enquanto um host pode ter vários endereços MAC – já que cada interface de rede pode ter seu próprio endereço MAC.
Esta biblioteca permite descobrir o endereço MAC por interface de rede e escolhe
uma interface apropriada se você estiver interessado apenas em um endereço MAC
que identifique o sistema host (veja API + Exemplos abaixo).
Funcionalidades:
Linux, Mac OS X, Windows e na maioria dos sistemas UNIX.node ≥ 0.12 e io.js relatam endereços MAC em os.networkInterfaces()
esta biblioteca utiliza essas informações quando disponível.os.networkInterfaces()
(veja API + Exemplos abaixo).npm install --save macaddress
var macaddress = require('macaddress');
(async) .one(iface, callback) → string
(async) .one(callback) → string
(async) .all(callback) → { iface: { type: address } }
(sync) .networkInterfaces() → { iface: { type: address } }
.one([iface], callback)Recupera o endereço MAC da iface fornecida.
Se iface for omitida, esta função escolhe automaticamente um
dispositivo apropriado (ex.: eth0 no Linux, en0 no OS X, etc.).
Sem o parâmetro iface:
macaddress.one(function (err, mac) {
console.log("Mac address for this host: %s", mac);
});
→ Mac address for this host: ab:42:de:13:ef:37
Com o parâmetro iface:
macaddress.one('awdl0', function (err, mac) {
console.log("Mac address for awdl0: %s", mac);
});
→ Mac address for awdl0: ab:cd:ef:34:12:56
.all(callback)Recupera os endereços MAC para todas as interfaces não internas.
macaddress.all(function (err, all) {
console.log(JSON.stringify(all, null, 2));
});
{
"en0": {
"ipv6": "fe80::cae0:ebff:fe14:1da9",
"ipv4": "192.168.178.20",
"mac": "ab:42:de:13:ef:37"
},
"awdl0": {
"ipv6": "fe80::58b9:daff:fea9:23a9",
"mac": "ab:cd:ef:34:12:56"
}
}
.networkInterfaces()Uma substituição útil para os.networkInterfaces(). Relata apenas interfaces não internas.
console.log(JSON.stringify(macaddress.networkInterfaces(), null, 2));
{
"en0": {
"ipv6": "fe80::cae0:ebff:fe14:1dab",
"ipv4": "192.168.178.22"
},
"awdl0": {
"ipv6": "fe80::58b9:daff:fea9:23a9"
}
}