欢迎您来到,李雷博客 | PHP博客        登录  |  注册

JS获取浏览器客户端IP及解除获取本机IP安全限制

更新:2023-03-13 13:18:00
人气:1715
来源:本站整理
A+

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

火狐(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:

<script>

function getIP(callback) {
      let recode = {};
      let RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
      if (!RTCPeerConnection) {
        let win = iframe.contentWindow;
        RTCPeerConnection = win.RTCPeerConnection || win.mozRTCPeerConnection || win.webkitRTCPeerConnection;
      }
      //创建实例,生成连接
      let pc = new RTCPeerConnection();
      // 匹配字符串中符合ip地址的字段
      function handleCandidate(candidate) {
        let ip_regexp = /([0-9]{1,3}(\.[0-9]{1,3}){3}|([a-f0-9]{1,4}((:[a-f0-9]{1,4}){7}|:+[a-f0-9]{1,4}){6}))/;
        let ip_isMatch = candidate.match(ip_regexp)[1];
        if (!recode[ip_isMatch]) {
          callback(ip_isMatch);
          recode[ip_isMatch] = true;
        }
      }
      //监听icecandidate事件
      pc.onicecandidate = (ice) => {
        if (ice.candidate) {
          handleCandidate(ice.candidate.candidate);
        }
      };
      //建立一个伪数据的通道
      pc.createDataChannel('');
      pc.createOffer((res) => {
        pc.setLocalDescription(res);
      }, () => {});
     
      //延迟,让一切都能完成
      setTimeout(() => {
        let lines = pc.localDescription.sdp.split('\n');
        lines.forEach(item => {
          if (item.indexOf('a=candidate:') === 0) {
            handleCandidate(item);
          }
        })
      }, 1000);
}
 
getIP(function(ip){
      console.log("得到的本地IP :" + ip); // 192.168.1.80
});

</script>
推荐的文章
# 发表我的评论
  /     /  
# 最近评论
暂时还没有评论,要不要说点什么?
  Ads by Google
  联系博主
Hello,本博客系统采用PHP和MySql开发,程序开发完全是因为个人爱好,是自己纯手写PHP源代码,未采用任何PHP框架!
QQ:858353007   微信号:lileihot123
网站地图
会员服务
关于我们
QQ:858353007
 
广告服务
加我微信
移动端访问
 
 
Copyright © 2014- 2024 www.mdaima.com All Rights Reserved.
李雷博客,专注PHP经验、PHP教程及PHP源代码开源下载分享的PHP博客!   ICP备案号:京ICP备10202169号-4