Node.js获取本机Mac地址的两种方案

 更新时间:2022年09月05日 15:20:28   作者:沙漠一只雕得儿得儿  
有时候我们的项目中可能会有日志记录的功能或者其他需要ip的功能,于是这时我们需要获取用户的ip地址或mac地址,下面这篇文章主要给大家介绍了关于Node.js获取本机Mac地址的两种方案,需要的朋友可以参考下

方案一:使用getmac库

首先我们要先加载一个包用于获取mac地址

npm install getmac

安装完毕会在node_modules文件夹下发现一个getmac文件夹,进入到node_moudles文件夹内,编写我们自己的test.js测试代码,如下所示:

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库

还有另外一种方式,不使用getmac库,使用系统提供的os库也是可以的。

在node里面有一个os模块,os模块有一个networkinterface方法,

这个方法返回一个网络接口对象。

这个返回的对象包含几个属性,其中每个属性的值都是一个数组。

返回一个对象,该对象包含已分配了网络地址的网络接口。
返回的对象上的每个键都标识了一个网络接口。 关联的值是一个对象数组,每个对象描述了一个分配的网络地址。
分配的网络地址的对象上可用的属性包括:

  • address<string> 分配的 IPv4 或 IPv6 地址。
  • netmask <string> IPv4 或 IPv6 的子网掩码。
  • family <string> IPv4 或 IPv6。
  • mac <string> 网络接口的 MAC 地址。
  • internal <boolean> 如果网络接口是不可远程访问的环回接口或类似接口,则为 true,否则为 false。
  • scopeid <number> 数值型的 IPv6 作用域 ID(仅当 family 为 IPv6 时指定)。
  • cidr <string> 以 CIDR 表示法分配的带有路由前缀的 IPv4 或 IPv6 地址。如果 netmask 无效,则此属性会被设为 null。

而我们所需要的ip地址,与mac地址都在这些数组当中。

方法代码:

var os=require("os");
var networkInterfaces=os.networkInterfaces();
console.info(networkInterfaces);

打印如图所示:

 解析上面的文件,即可找到我们本机的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

总结

到此这篇关于Node.js获取本机Mac地址的文章就介绍到这了,更多相关Node.js获取本机Mac地址内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Node.js使用NodeMailer发送邮件实例代码

    Node.js使用NodeMailer发送邮件实例代码

    本篇文章主要介绍了Node.js使用NodeMailer发送邮件实例代码,具有一定的参考价值,有兴趣的可以了解一下。
    2017-03-03
  • 详解nodeJS之路径PATH模块

    详解nodeJS之路径PATH模块

    本篇文章主要介绍了详解nodeJS之路径PATH模块 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Node.js的Web模板引擎ejs的入门使用教程

    Node.js的Web模板引擎ejs的入门使用教程

    ejs是Node世界的开源模板引擎中比较有人气的一个,而且并不只是在Express框架中才可以使用,今天为大家带来Node.js的Web模板引擎ejs的入门学习教程,其中侧重于ejs的layout页面布局放面
    2016-06-06
  • 解决nodejs报错Error:EPERM:operation not permitted,mkdir‘xxxxxxxxxxxxxxxx‘

    解决nodejs报错Error:EPERM:operation not permitted,mkdi

    这篇文章主要介绍了解决nodejs报错Error:EPERM:operation not permitted,mkdir‘xxxxxxxxxxxxxxxx‘问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • node.js中的url.parse方法使用举例

    node.js中的url.parse方法使用举例

    url.parse()可以将一个完整的URL地址,分为很多部分,下面这篇文章主要给大家介绍了关于node.js中url.parse方法使用的相关资料,文中通过实例代码和图文介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • 如何使node也支持从url加载一个module详解

    如何使node也支持从url加载一个module详解

    这篇文章主要给大家介绍了关于如何使node也支持从url加载一个module的相关资料,文中通过示例代码将实现的方法介绍非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-06-06
  • 异步JavaScript编程中的Promise使用方法

    异步JavaScript编程中的Promise使用方法

    这篇文章主要介绍了异步JavaScript编程中的Promise使用方法,包含Ajax的结合操作等问题,需要的朋友可以参考下
    2015-07-07
  • Node.js queryString 解析和格式化网址查询字符串工具使用

    Node.js queryString 解析和格式化网址查询字符串工具使用

    这篇文章主要为大家介绍了Node.js queryString 解析和格式化网址查询字符串工具使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • nodejs事件的监听与触发的理解分析

    nodejs事件的监听与触发的理解分析

    这篇文章主要介绍了nodejs事件的监听与触发的理解分析,以实例形式对比分析了nodejs与jQuery关于事件监听的实用技巧,有助于加深对nodejs的理解,需要的朋友可以参考下
    2015-02-02
  • node版本过高该如何将node版本降低

    node版本过高该如何将node版本降低

    我们常使用nvm来管理node.js的版本,这样就可以根据自己的需要来回切换node.js版本,下面这篇文章主要给大家介绍了关于node版本过高该如何将node版本降低的相关资料,需要的朋友可以参考下
    2023-01-01

最新评论