
Кроссплатформенная библиотека Node.js для получения MAC-адресов по каждому сетевому интерфейсу в Linux, macOS и Windows с асинхронными и синхронными API.
Получение MAC-адресов в Linux, OS X и Windows.
Распространённое заблуждение состоит в том, что каждый хост имеет один MAC-адрес, в то время как хост может иметь несколько MAC-адресов — поскольку каждый сетевой интерфейс может иметь свой собственный MAC-адрес.
Эта библиотека позволяет узнать MAC-адрес для каждого сетевого интерфейса и выбирает
подходящий интерфейс, если вас интересует один MAC-адрес, идентифицирующий
хост-систему (см. API + Примеры ниже).
Возможности:
Linux, Mac OS X, Windows и большинстве UNIX-систем.node ≥ 0.12 и io.js сообщают MAC-адреса в os.networkInterfaces()
эта библиотека использует эту информацию, когда она доступна.os.networkInterfaces()
(см. API + Примеры ниже).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)Возвращает MAC-адрес указанного iface.
Если iface опущен, эта функция автоматически выбирает
подходящее устройство (например, eth0 в Linux, en0 в OS X и т.д.).
Без параметра 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
С параметром 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)Возвращает MAC-адреса для всех невнутренних интерфейсов.
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()Полезная замена os.networkInterfaces(). Сообщает только о невнутренних интерфейсах.
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"
}
}