vue 获取用户ip,在vue项目中获取用户ip地址
今天在写项目掉接口的时候有一个接口需要到了用户的ip地址,查了半天觉得这个方法不错,也不要引入第三方的插件。我自己觉得还不错,就记下来以备不时之需
首先在data里添加一个ip为空
data() {undefined
return {undefined
ip: ''
};
}
然后在methods里面写上
getUserIP(onNewIP) {undefined
let MyPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
let pc = new MyPeerConnection({undefined
iceServers: []
});
let noop = () => {undefined
};
let localIPs = {};
let ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g;
let iterateIP = (ip) => {undefined
if (!localIPs[ip]) onNewIP(ip);
localIPs[ip] = true;
};
pc.createDataChannel('');
pc.createOffer().then((sdp) => {undefined
sdp.sdp.split('\n').forEach(function (line) {undefined
if (line.indexOf('candidate') < 0) return;
line.match(ipRegex).forEach(iterateIP);
});
pc.setLocalDescription(sdp, noop, noop);
}).catch((reason) => {undefined
});
pc.onicecandidate = (ice) => {undefined
if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;
ice.candidate.candidate.match(ipRegex).forEach(iterateIP);
};
}
最后在mounted里面调用在methods里面的那个方法getUserIP()
this.getUserIP((ip) => {undefined
this.ip = ip;
});
这样this.ip就是用户当前的ip地址了
对了,有的浏览器获取到的是IPv4地址,有的是IPv6地址
转载至:https://blog.csdn.net/weixin_36361447/article/details/116215789
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!