
مكتبة Node.js متعددة المنصات لاسترداد عناوين MAC لكل واجهة شبكة على لينكس، ماك، وويندوز، مع واجهات برمجة تطبيقات غير متزامنة ومتزامنة.
استرجاع عناوين MAC في لينكس، ماك أو إس، وويندوز.
من المفاهيم الخاطئة الشائعة حول عناوين MAC أن كل مضيف لديه عنوان MAC واحد، بينما قد يكون للمضيف عدة عناوين MAC – لأن كل واجهة شبكة قد يكون لها عنوان MAC خاص بها.
تتيح هذه المكتبة اكتشاف عنوان MAC لكل واجهة شبكة وتختار
واجهة مناسبة إذا كنت مهتمًا فقط بعنوان MAC واحد يحدد
نظام المضيف (انظر API + أمثلة أدناه).
الميزات:
لينكس، ماك أو إس، ويندوز، ومعظم أنظمة يونكس.node ≥ 0.12 و io.js يبلغان عن عناوين MAC في os.networkInterfaces()
تستخدم هذه المكتبة هذه المعلومات عند توفرها.os.networkInterfaces()
(انظر API + أمثلة أدناه).npm install --save macaddress
var macaddress = require('macaddress');
(غير متزامن) .one(iface, callback) → سلسلة نصية
(غير متزامن) .one(callback) → سلسلة نصية
(غير متزامن) .all(callback) → { iface: { type: address } }
(متزامن) .networkInterfaces() → { iface: { type: address } }
.one([iface], callback)استرجاع عنوان MAC للواجهة iface المحددة.
إذا تم حذف iface، تختار هذه الدالة تلقائيًا جهازًا
مناسبًا (مثل eth0 في لينكس، en0 في ماك أو إس، إلخ).
بدون معامل iface:
macaddress.one(function (err, mac) {
console.log("عنوان MAC لهذا المضيف: %s", mac);
});
→ عنوان MAC لهذا المضيف: ab:42:de:13:ef:37
مع معامل iface:
macaddress.one('awdl0', function (err, mac) {
console.log("عنوان MAC لـ awdl0: %s", mac);
});
→ عنوان MAC لـ 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"
}
}