Node.js獲取本機(jī)Mac地址的兩種方案
方案一:使用getmac庫(kù)
首先我們要先加載一個(gè)包用于獲取mac地址
npm install getmac
安裝完畢會(huì)在node_modules文件夾下發(fā)現(xiàn)一個(gè)getmac文件夾,進(jìn)入到node_moudles文件夾內(nèi),編寫我們自己的test.js測(cè)試代碼,如下所示:
var npm = require('getmac');//獲取mac地址 console.log('npm', npm) console.log(npm.default()) console.log(npm.isMAC('8c:16:45:25:26:44'))
打印如下:
0a:00:27:00:00:11就是我們電腦的mac地址。
方案二:使用os庫(kù)
還有另外一種方式,不使用getmac庫(kù),使用系統(tǒng)提供的os庫(kù)也是可以的。
在node里面有一個(gè)os模塊,os模塊有一個(gè)networkinterface方法,
這個(gè)方法返回一個(gè)網(wǎng)絡(luò)接口對(duì)象。
這個(gè)返回的對(duì)象包含幾個(gè)屬性,其中每個(gè)屬性的值都是一個(gè)數(shù)組。
返回一個(gè)對(duì)象,該對(duì)象包含已分配了網(wǎng)絡(luò)地址的網(wǎng)絡(luò)接口。
返回的對(duì)象上的每個(gè)鍵都標(biāo)識(shí)了一個(gè)網(wǎng)絡(luò)接口。 關(guān)聯(lián)的值是一個(gè)對(duì)象數(shù)組,每個(gè)對(duì)象描述了一個(gè)分配的網(wǎng)絡(luò)地址。
分配的網(wǎng)絡(luò)地址的對(duì)象上可用的屬性包括:
- address<string> 分配的 IPv4 或 IPv6 地址。
- netmask <string> IPv4 或 IPv6 的子網(wǎng)掩碼。
- family <string> IPv4 或 IPv6。
- mac <string> 網(wǎng)絡(luò)接口的 MAC 地址。
- internal <boolean> 如果網(wǎng)絡(luò)接口是不可遠(yuǎn)程訪問的環(huán)回接口或類似接口,則為 true,否則為 false。
- scopeid <number> 數(shù)值型的 IPv6 作用域 ID(僅當(dāng) family 為 IPv6 時(shí)指定)。
- cidr <string> 以 CIDR 表示法分配的帶有路由前綴的 IPv4 或 IPv6 地址。如果 netmask 無效,則此屬性會(huì)被設(shè)為 null。
而我們所需要的ip地址,與mac地址都在這些數(shù)組當(dāng)中。
方法代碼:
var os=require("os"); var networkInterfaces=os.networkInterfaces(); console.info(networkInterfaces);
打印如圖所示:
解析上面的文件,即可找到我們本機(jī)的Mac地址:
var os=require("os"); var mac = '' var networkInterfaces=os.networkInterfaces(); for(var i in networkInterfaces){ for(var j in networkInterfaces[i]){ if(networkInterfaces[i][j]["family"]==="IPv4" && networkInterfaces[i][j]["mac"]!=="00:00:00:00:00:00" && networkInterfaces[i][j]["address"]!=="127.0.0.1"){ mac = networkInterfaces[i][j]["mac"] } } } console.log(mac) //a6:02:b9:76:93:28
總結(jié)
到此這篇關(guān)于Node.js獲取本機(jī)Mac地址的文章就介紹到這了,更多相關(guān)Node.js獲取本機(jī)Mac地址內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何利用node轉(zhuǎn)發(fā)請(qǐng)求詳解
這篇文章主要給大家介紹了關(guān)于利用node轉(zhuǎn)發(fā)請(qǐng)求的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09如何在Nestjs和Vue3中使用socket.io示例詳解
這篇文章主要為大家介紹了如何在Nestjs和Vue3中使用socket.io示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08nodejs一個(gè)簡(jiǎn)單的文件服務(wù)器的創(chuàng)建方法
這篇文章主要介紹了nodejs一個(gè)簡(jiǎn)單的文件服務(wù)器的創(chuàng)建方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09