electron中獲取mac地址的實現(xiàn)示例
引入
為了方便做單點登錄,我們往往需要使用某個唯一標識來標記客戶端的設備,mac地址就是一個還不錯的選擇
思路
我們可以使用Node.js的內(nèi)置模塊os,調(diào)用其中的networkInterfaces方法。該方法會返回一個包含網(wǎng)絡接口信息的數(shù)組對象,通過遍歷該數(shù)組對象,可以獲取到Mac地址,我們先看下調(diào)用得到的響應內(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" }] }
封裝代碼
可以看到是個鍵值對的形式,所以我們直接獲取key,然后遍歷取值,再獲取對象中的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; };
到此這篇關于electron中獲取mac地址的實現(xiàn)示例的文章就介紹到這了,更多相關electron獲取mac地址內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
前端獲取excel表格數(shù)據(jù)并在瀏覽器展示方法實例
在開發(fā)過程中,難免會碰到用前端來處理excel文件的需求,這篇文章主要給大家介紹了關于前端獲取excel表格數(shù)據(jù)并在瀏覽器展示方的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-08-08JavaScript代碼實現(xiàn)左右上下自動晃動自動移動
最近幾天做了一個項目,原來是用css3動畫做的,由于不兼容IE,改成用js做了,特此分享給大家,供大家參考2016-04-04