
Bibliothèque Node.js multiplateforme pour récupérer les adresses MAC par interface réseau sur Linux, macOS et Windows, avec des API asynchrones et synchrones.
Récupérer les adresses MAC sous Linux, OS X et Windows.
Une idée fausse courante est que chaque hôte a une adresse MAC, alors qu'un hôte peut avoir plusieurs adresses MAC – puisque chaque interface réseau peut avoir sa propre adresse MAC.
Cette bibliothèque permet de découvrir l'adresse MAC par interface réseau et choisit
une interface appropriée si vous ne vous intéressez qu'à une adresse MAC identifiant
le système hôte (voir API + Exemples ci-dessous).
Fonctionnalités :
Linux, Mac OS X, Windows et sur la plupart des systèmes UNIX.node ≥ 0.12 et io.js rapportent les adresses MAC dans os.networkInterfaces()
cette bibliothèque utilise ces informations lorsqu'elles sont disponibles.os.networkInterfaces()
(voir API + Exemples ci-dessous).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)Récupère l'adresse MAC de l'interface iface donnée.
Si iface est omise, cette fonction choisit automatiquement un
périphérique approprié (par exemple eth0 sous Linux, en0 sous OS X, etc.).
Sans paramètre 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
Avec paramètre 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)Récupère les adresses MAC pour toutes les interfaces non internes.
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 remplacement utile de os.networkInterfaces(). Ne rapporte que les interfaces non internes.
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"
}
}