
Recupera gli indirizzi MAC in Linux, OS X e Windows.
Un equivoco comune sugli indirizzi MAC è che ogni host abbia un indirizzo MAC, mentre un host può avere più indirizzi MAC – poiché ogni interfaccia di rete può avere il proprio indirizzo MAC.
Questa libreria consente di individuare l'indirizzo MAC per ogni interfaccia di rete e sceglie un'interfaccia appropriata se tutto ciò che ti interessa è un indirizzo MAC che identifichi il sistema host (vedi API + Esempi di seguito).
Caratteristiche:
Linux, Mac OS X, Windows e sulla maggior parte dei sistemi UNIX.node ≥ 0.12 e io.js riportano gli indirizzi MAC in os.networkInterfaces(); questa libreria utilizza queste informazioni quando disponibili.os.networkInterfaces() (vedi API + Esempi di seguito).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 l'indirizzo MAC dell'iface dato.
Se iface viene omesso, questa funzione sceglie automaticamente un dispositivo appropriato (ad es. eth0 in Linux, en0 in OS X, ecc.).
Senza il parametro 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
Con il parametro 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 gli indirizzi MAC per tutte le interfacce non interne.
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()Un utile sostituto di os.networkInterfaces(). Riporta solo le interfacce non interne.
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"
}
}