vue前端獲取不同客戶端mac地址最詳細(xì)步驟(避免踩坑)
應(yīng)用場景:每個賬號綁定唯一的電腦可以用網(wǎng)卡的mac地址來做這個唯一的字段。
作用:**可以獲取到不同使用者電腦的mac地址,發(fā)送給后端**。
直接開始教程:
找了很多教程,很多都是不全的,要么就是實現(xiàn)不了的,所以整理了一份比較詳細(xì)的避免踩坑的教程
說明我的環(huán)境 使用的是vue-admin-template
基礎(chǔ)版開發(fā)的
node
:16.18.1 npm
: 8.19.2 vue
:2.6.10 electron
: 13.0
一、對現(xiàn)有的項目打包成exe文件,安裝之后獲取mac地址
1、對現(xiàn)在的vue項目 安裝 : vue add electron-builder
報錯需要安裝vue/cli 安裝命令:npm install -g @vue/cli
下載完成會多幾個文件,package 也會多一些命令
二、 在vue.config.js里面配置
module.exports = { pluginOptions: { electronBuilder: { nodeIntegration: true } }, }
三、開始獲取mac地址
在需要mac地址的頁面獲取,獲取的mac地址分為以太網(wǎng)和WLAN
<template> <div class="dashboard-container"> <h1>mac:{{ mac }}</h1> <h1>address:{{ address }}</h1> </div> </template> <script> import { mapGetters } from "vuex"; export default { name: "Dashboard", data() { return { mac: "", address: "", }; }, computed: { ...mapGetters(["name"]), }, async created() { this.getMAC(); }, methods: { getMAC() { // 判斷是否在Electron中運行 if (this.isElectron()) { const networkInterfaces = require("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" ) { this.mac = details.mac; this.address = details.address; } } } } else { console.warn("不在 Electron 中運行,跳過獲取 MAC 地址"); } }, isElectron() { // 通過判斷process.versions.electron來檢查是否在Electron環(huán)境中運行 return !!( window && window.process && window.process.versions && window.process.versions.electron ); }, }, }; </script> <style lang="scss" scoped> .dashboard { &-container { margin: 30px; } &-text { font-size: 30px; line-height: 46px; } } </style>
四、 之后運行npm run electron:serve或者打包 npm run electron:build即可
需要注意在瀏覽器運行的項目是獲取不到mac地址的,所以我加了判斷,只在electron環(huán)境中
可以看到已經(jīng)有了
總結(jié)
到此這篇關(guān)于vue前端獲取不同客戶端mac地址的文章就介紹到這了,更多相關(guān)vue前端獲取客戶端mac地址內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue報錯"vue-cli-service‘不是內(nèi)部或外部命令,也不是...”的解決辦法
這篇文章主要介紹了vue報錯"vue-cli-service‘不是內(nèi)部或外部命令,也不是...”的解決辦法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-01-01使用reactive導(dǎo)致數(shù)據(jù)失去響應(yīng)式的原因和解決方案
在 Vue 的響應(yīng)式系統(tǒng)中,reactive 對象是一個深度代理,它會追蹤對象屬性的變更,但如果你將整個對象重新賦值,那么 Vue 無法繼續(xù)追蹤新的對象,本文給大家介紹了使用reactive導(dǎo)致數(shù)據(jù)失去響應(yīng)式的原因和解決方案,需要的朋友可以參考下2024-09-09