小工具知识网

当前位置: 首页 > 行业知识 > JS获取本机IP地址的2种方法

行业知识

JS获取本机IP地址的2种方法

2026-11-08 15:21:52 来源:互联网转载

目录

    • 1.获取本机IP地址方法1:
    • 2.获取本机IP地址方法2
    • 解决方案:

      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')  {  });  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正常显示 )

上一篇:oa怎么连接服务器?

下一篇:服务器关机后怎么设置?