
MAC-Adressen unter Linux, OS X und Windows abrufen.
Ein weit verbreitetes Missverständnis über MAC-Adressen ist, dass jeder Host genau eine MAC-Adresse hat, während ein Host durchaus mehrere MAC-Adressen haben kann – da jede Netzwerkschnittstelle ihre eigene MAC-Adresse haben kann.
Diese Bibliothek ermöglicht es, die MAC-Adresse pro Netzwerkschnittstelle zu ermitteln, und wählt
eine geeignete Schnittstelle aus, wenn Sie nur an einer MAC-Adresse interessiert sind, die das
Hostsystem identifiziert (siehe API + Beispiele unten).
Features:
Linux, Mac OS X, Windows und den meisten UNIX-Systemen.node ≥ 0.12 und io.js melden MAC-Adressen in os.networkInterfaces()
diese Bibliothek nutzt diese Informationen, wenn verfügbar.os.networkInterfaces()
(siehe API + Beispiele unten).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)Ermittelt die MAC-Adresse der angegebenen iface.
Wird iface weggelassen, wählt diese Funktion automatisch ein
geeignetes Gerät (z. B. eth0 unter Linux, en0 unter OS X usw.).
Ohne iface-Parameter:
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
Mit iface-Parameter:
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)Ermittelt die MAC-Adressen aller nicht-internen Schnittstellen.
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()Ein nützlicher Ersatz für os.networkInterfaces(). Liefert nur nicht-interne Schnittstellen.
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"
}
}