1、最近有个新需求,保存操作数据时,取到打开该网站电脑的IP和MAC地址(物理地址)传给后端,所以研究了下js获取IP和MAC地址功能,发现js有有权限问题,看到node.js可以,以下为官方文档
在这里插入图片描述
2、vue项目根目录创建getNetworkInfo.js文件,用来引入node.js os模块,代码如下:


// 获取本机mac地址及ip
const os = require("os");
function getNetworkInfo() {
  let ipAddress = "127.0.0.1";
  let macAddress = "";
  const networkInterfaces = os.networkInterfaces();
  for (const iface of Object.values(networkInterfaces)) {
    for (const details of iface) {
      if (
        details.family === "IPv4" &&
        details.mac !== "00:00:00:00:00:00" &&
        details.address !== "127.0.0.1"
      ) {
        macAddress = details.mac;
        ipAddress = details.address;
        return { macAddress, ipAddress };
      }
    }
  }
  return { macAddress, ipAddress };
}
module.exports = getNetworkInfo;

3、vue.config.js文件中引入getNetworkInfo.js并绑定到process.env上,这样全局都能用

const getNetworkInfo = require("./getNetworkInfo.js"); //IP及MAC
const { macAddress, ipAddress } = getNetworkInfo();
process.env.VUE_APP_MACADDRESS = macAddress;
process.env.VUE_APP_IPADDRESS = ipAddress;

4、在要使用的页面引入即可

mounted(){
    this.macAddress = process.env.VUE_APP_MACADDRESS;
    this.ipAddress = process.env.VUE_APP_IPADDRESS;
    console.log("macAddress", this.macAddress);
    console.log("ipAddress", this.ipAddress);
},

5、在该页面控制台查看打印出了该电脑的mac地址和ip 地址

在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐