electron中獲取mac地址的實(shí)現(xiàn)示例
引入
為了方便做單點(diǎn)登錄,我們往往需要使用某個(gè)唯一標(biāo)識(shí)來標(biāo)記客戶端的設(shè)備,mac地址就是一個(gè)還不錯(cuò)的選擇
思路
我們可以使用Node.js的內(nèi)置模塊os,調(diào)用其中的networkInterfaces方法。該方法會(huì)返回一個(gè)包含網(wǎng)絡(luò)接口信息的數(shù)組對(duì)象,通過遍歷該數(shù)組對(duì)象,可以獲取到Mac地址,我們先看下調(diào)用得到的響應(yīng)內(nèi)容
import { networkInterfaces } from "os";
console.log(JSON.stringify(networkInterfaces()));

{
"Ethernet0": [{
"address": "fe80::803c:6a7b:14b0:f652",
"netmask": "ffff:ffff:ffff:ffff::",
"family": "IPv6",
"mac": "00:0c:29:ea:41:55",
"internal": false,
"cidr": "fe80::803c:6a7b:14b0:f652/64",
"scopeid": 7
}, {
"address": "192.168.213.154",
"netmask": "255.255.255.0",
"family": "IPv4",
"mac": "00:0c:29:ea:41:55",
"internal": false,
"cidr": "192.168.213.154/24"
}],
"Loopback Pseudo-Interface 1": [{
"address": "::1",
"netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
"family": "IPv6",
"mac": "00:00:00:00:00:00",
"internal": true,
"cidr": "::1/128",
"scopeid": 0
}, {
"address": "127.0.0.1",
"netmask": "255.0.0.0",
"family": "IPv4",
"mac": "00:00:00:00:00:00",
"internal": true,
"cidr": "127.0.0.1/8"
}]
}封裝代碼
可以看到是個(gè)鍵值對(duì)的形式,所以我們直接獲取key,然后遍歷取值,再獲取對(duì)象中的mac地址即可:
/**獲取mac地址信息 */
export const getMacAddress = function (): string {
const interfaces = networkInterfaces();
let macAddress = "";
for (const interfaceName of Object.keys(interfaces)) {
const interfaceInfos = interfaces[interfaceName];
if (interfaceInfos) {
for (const interfaceInfo of interfaceInfos) {
if (interfaceInfo.mac && interfaceInfo.mac !== "00:00:00:00:00:00") {
macAddress = interfaceInfo.mac;
break;
}
}
}
if (macAddress.length > 0) break;
}
return macAddress;
};

到此這篇關(guān)于electron中獲取mac地址的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)electron獲取mac地址內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用electron將vue-cli項(xiàng)目打包成exe的方法
- 使用 electron 實(shí)現(xiàn)類似新版 QQ 的登錄界面效果(陰影、背景動(dòng)畫、窗體3D翻轉(zhuǎn))
- electron + vue項(xiàng)目實(shí)現(xiàn)打印小票功能及實(shí)現(xiàn)代碼
- Electron 如何調(diào)用本地模塊的方法
- Electron + vue 打包桌面操作流程詳解
- electron 如何將任意資源打包的方法步驟
- electron打包vue項(xiàng)目的方法 步驟
- vue+electron實(shí)現(xiàn)創(chuàng)建多窗口及窗口間的通信(實(shí)施方案)
相關(guān)文章
inner join 內(nèi)聯(lián)與left join 左聯(lián)的實(shí)例代碼
這篇文章主要介紹了inner join 內(nèi)聯(lián)與left join 左聯(lián)的實(shí)例代碼,需要的朋友可以參考下2017-09-09
javaScript年份下拉列表框內(nèi)容為當(dāng)前年份及前后50年
本文介紹的這個(gè)javaScript年份下拉列表框內(nèi)容為當(dāng)前年份及前后50年,默認(rèn)顯示當(dāng)前年份,大家可以學(xué)習(xí)下2014-05-05
JavaScript html5 canvas畫布中刪除一個(gè)塊區(qū)域的方法
這篇文章主要介紹了JavaScript html5 canvas畫布中刪除一個(gè)塊區(qū)域的方法,涉及JavaScript結(jié)合html5操作canvas畫布圖形繪制的技巧,需要的朋友可以參考下2016-01-01
用javascript代替marquee的滾動(dòng)字幕效果代碼
用javascript代替marquee的滾動(dòng)字幕效果代碼...2007-04-04

