您现在的位置是:网站首页> 编程资料编程资料
JS获取本机IP地址的2种方法_javascript技巧_
2023-05-24
290人已围观
简介 JS获取本机IP地址的2种方法_javascript技巧_
1.获取本机IP地址方法1:
if(typeof window != 'undefined'){ var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; if (RTCPeerConnection) (()=>{ var rtc = new RTCPeerConnection() rtc.createDataChannel(''); //创建一个可以发送任意数据的数据通道 rtc.createOffer( offerDesc => { //创建并存储一个sdp数据 rtc.setLocalDescription(offerDesc) }, e => { console.log(e)}) rtc.onicecandidate =(evt) => { //监听candidate事件 if (evt.candidate) { console.log('evt:',evt.candidate) let ip_rule = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/ var ip_addr = ip_rule.exec(evt.candidate.candidate)[1] console.log('ip_addr:',ip_addr) //打印获取的IP地址 }} })() else{console.log("没有找到")} }2.获取本机IP地址方法2
//获取用户本地ip的方法 const getUserIP= (onNewIP)=> { let MyPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; let pc = new MyPeerConnection({ iceServers: [] }); let noop = () => { }; 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) => { if (!localIPs[ip]) onNewIP(ip); localIPs[ip] = true; }; pc.createDataChannel(''); pc.createOffer().then((sdp) => { sdp.sdp.split('\n').forEach(function (line) { if (line.indexOf('candidate') < 0) return; line.match(ipRegex).forEach(iterateIP); }); pc.setLocalDescription(sdp, noop, noop); }).catch((reason) => { }); pc.onicecandidate = (ice) => { if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return; ice.candidate.candidate.match(ipRegex).forEach(iterateIP); }; } getUserIP((ip) => { state.ip=ip console.log(ip) console.log(state.ip) });如果电脑没获取到,基本上是因为浏览器限制了,解除方法如下:
解决方案:
- 火狐(FireFox) 删除隐藏IP
浏览器输入 about:config
搜索配置 media.peerconnection.enabled 改为false ( 刷新程序,IP正常显示 )
- 谷歌(Chrome) 删除隐藏IP
浏览器输入:chrome://flags/#enable-webrtc-hide-local-ips-with-mdns
把 Anonymize local IPs exposed by WebRTC 设置为 disabled ( 刷新程序,IP正常显示 )
- eage浏览器删除隐藏ip
浏览器输入: edge://flags/#enable-webrtc-hide-local-ips-with-mdns
把 Anonymize local IPs exposed by WebRTC 设置为 disabled ( 刷新程序,IP正常显示 )
总结
到此这篇关于JS获取本机IP地址的2种方法的文章就介绍到这了,更多相关JS获取本机IP地址内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
相关内容
- JavaScript 条件判断使用技巧详解_JavaScript_
- 五分钟带你快速了解vue的常用实例方法_vue.js_
- vue3使用自定义指令实现el dialog拖拽功能示例详解_vue.js_
- vue中使用vue-pdf组件实现文件预览及相应报错解决_vue.js_
- JavaScript中将字符串转换为数字的七种方法总结_javascript技巧_
- vue3+ts+vite2项目实战踩坑记录_vue.js_
- vue3+vite自定义封装vue组件发布到npm包的全过程_vue.js_
- vue2从数据变化到视图变化之nextTick使用详解_vue.js_
- 关于访问node express中的static静态文件方法_node.js_
- vue2从数据变化到视图变化发布订阅模式详解_vue.js_
