1、最近有个新需求,保存操作数据时,取到打开该网站电脑的IP和MAC地址(物理地址)传给后端,所以研究了下js获取IP和MAC地址功能,发现js有有权限问题,看到node.js可以,以下为官方文档
2、vue项目根目录创建get***workInfo.js文件,用来引入node.js os模块,代码如下:
// 获取本机mac地址及ip
const os = require("os");
function get***workInfo() {
let ipAddress = "127.0.0.1";
let macAddress = "";
const ***workInterfaces = os.***workInterfaces();
for (const iface of Object.values(***workInterfaces)) {
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 = get***workInfo;
3、vue.config.js文件中引入get***workInfo.js并绑定到process.env上,这样全局都能用
const get***workInfo = require("./get***workInfo.js"); //IP及MAC
const { macAddress, ipAddress } = get***workInfo();
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 地址