vue前端获取差别的客户端mac地点(最详细,制止踩坑)

[复制链接]
发表于 2025-12-28 01:40:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
vue前端获取差别的客户端mac地点(最详细,制止踩坑)

应用场景:每个账号绑定唯一的电脑可以用网卡的mac地点来做这个唯一的字段。
作用:**可以获取到差别使用者电脑的mac地点,发送给后端**。
直接开始教程:
找了很多教程,很多都是不全的,要么就是实现不了的,以是整理了一份比力详细的制止踩坑的教程
阐明我的环境  使用的是vue-admin-template根本版开辟的
node:16.18.1  npm: 8.19.2  vue :2.6.10  electron : 13.0
一、对现有的项目打包成exe文件,安装之后获取mac地点

1、对如今的vue项目 安装 : vue add electron-builder

报错须要安装vue/cli  安装下令:npm install -g @vue/cli



下载完成会多几个文件,package 也会多一些下令


二、 在vue.config.js内里设置
  1. module.exports = {
  2.     pluginOptions: {
  3.         electronBuilder: {
  4.             nodeIntegration: true
  5.         }
  6.     },
  7. }
复制代码
三、开始获取mac地点

在须要mac地点的页面获取,获取的mac地点分为以太网和WLAN
  1. <template>
  2.   <div class="dashboard-container">
  3.     <h1>mac:{{ mac }}</h1>
  4.     <h1>address:{{ address }}</h1>
  5.   </div>
  6. </template>
  7. <script>
  8. import { mapGetters } from "vuex";
  9. export default {
  10.   name: "Dashboard",
  11.   data() {
  12.     return {
  13.       mac: "",
  14.       address: "",
  15.     };
  16.   },
  17.   computed: {
  18.     ...mapGetters(["name"]),
  19.   },
  20.   async created() {
  21.     this.getMAC();
  22.   },
  23.   methods: {
  24.     getMAC() {
  25.       // 判断是否在Electron中运行
  26.       if (this.isElectron()) {
  27.         const networkInterfaces = require("os").networkInterfaces();
  28.         for (const iface of Object.values(networkInterfaces)) {
  29.           for (const details of iface) {
  30.             if (
  31.               details.family === "IPv4" &&
  32.               details.mac !== "00:00:00:00:00:00" &&
  33.               details.address !== "127.0.0.1"
  34.             ) {
  35.               this.mac = details.mac;
  36.               this.address = details.address;
  37.             }
  38.           }
  39.         }
  40.       } else {
  41.         console.warn("不在 Electron 中运行,跳过获取 MAC 地址");
  42.       }
  43.     },
  44.     isElectron() {
  45.       // 通过判断process.versions.electron来检查是否在Electron环境中运行
  46.       return !!(
  47.         window &&
  48.         window.process &&
  49.         window.process.versions &&
  50.         window.process.versions.electron
  51.       );
  52.     },
  53.   },
  54. };
  55. </script>
  56. <style lang="scss" scoped>
  57. .dashboard {
  58.   &-container {
  59.     margin: 30px;
  60.   }
  61.   &-text {
  62.     font-size: 30px;
  63.     line-height: 46px;
  64.   }
  65. }
  66. </style>
复制代码
四、 之后运行npm run electron:serve大概打包 npm run electron:build即可

须要注意在欣赏器运行的项目是获取不到mac地点的,以是我加了判断,只在electron环境中
可以看到已经有了

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表