JS获取本机IP地址的方法(附上解决浏览器无法获取IP的方法)

获取本机IP地址:

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("没有找到")}

}

如果电脑没获取到,基本上是因为浏览器限制了,解除方法如下:

解决方案:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容