位置: IT常识 - 正文

JS获取本机IP地址的方法(js获取本机ip地址)

编辑:rootadmin
JS获取本机IP地址的方法

推荐整理分享JS获取本机IP地址的方法(js获取本机ip地址),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript获取本机ip,js获取本机ipv4地址,js怎么获取本机ip,js获取ip和mac,js获取本机ip地址,js获取ip和mac,js获取本机ip地址,js获取本机ip地址,内容如对您有帮助,希望把文章链接给更多的朋友!

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)

JS获取本机IP地址的方法(js获取本机ip地址)

            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正常显示 )

本文链接地址:https://www.jiuchutong.com/zhishi/298830.html 转载请保留说明!

上一篇:大数据现在找工作难么(大数据找工作好找吗)

下一篇:vue+springboot使用文件流实现文件下载(vue springboot)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络