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)文章
前端獲取excel表格數(shù)據(jù)并在瀏覽器展示方法實(shí)例
在開發(fā)過程中,難免會(huì)碰到用前端來處理excel文件的需求,這篇文章主要給大家介紹了關(guān)于前端獲取excel表格數(shù)據(jù)并在瀏覽器展示方的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
刷新頁(yè)面實(shí)現(xiàn)方式總結(jié)(HTML,ASP,JS)
多種方法實(shí)現(xiàn)頁(yè)面的刷新代碼2008-11-11
JS實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)刷新腳本的方法
要自動(dòng)刷新網(wǎng)頁(yè),你可以使用JavaScript腳本來實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于JS實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)刷新腳本的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
JavaScript代碼實(shí)現(xiàn)左右上下自動(dòng)晃動(dòng)自動(dòng)移動(dòng)
最近幾天做了一個(gè)項(xiàng)目,原來是用css3動(dòng)畫做的,由于不兼容IE,改成用js做了,特此分享給大家,供大家參考2016-04-04
JS使用canvas繪制旋轉(zhuǎn)風(fēng)車動(dòng)畫
這篇文章主要為大家詳細(xì)介紹了JS使用canvas繪制旋轉(zhuǎn)風(fēng)車動(dòng)畫,有加速減速啟動(dòng)停止功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
基于javascript實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能
這篇文章主要介紹了基于javascript實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能的相關(guān)資料,需要的朋友可以參考下2016-01-01

