Chrome和IE获取本机ip地址

Chrome

浏览器输入:chrome://flags/#enable-webrtc-hide-local-ips-with-mdns

把 Anonymize local IPs exposed by WebRTC 设置为 disabled ( 刷新程序,IP正常显示 )

java 复制代码
// 获取本机IP
    async function getUserIp() {
      let ip = '';
      const RTCPeerConnection =
        window.RTCPeerConnection ||
        window.mozRTCPeerConnection ||
        window.webkitRTCPeerConnection;
      if (RTCPeerConnection) {
        const rtc = new RTCPeerConnection();
        await rtc.createDataChannel(''); //创建一个可以发送任意数据的数据通道
        await rtc.createOffer(
          async (offerDesc) => {
            //创建并存储一个sdp数据
            await rtc.setLocalDescription(offerDesc);
          },
          (e) => {
            console.log(e);
          }
        );
        return new Promise((resolve) => {
          rtc.onicecandidate = (evt) => {
            //监听candidate事件
            if (evt.candidate) {
              console.log('evt:', evt.candidate);
              const ip_rule =
                /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/;
              const ip_addr = ip_rule.exec(evt.candidate.candidate)[1];
              console.log('ip_addr:', ip_addr); //打印获取的IP地址
              resolve(ip_addr || '');
            }
          };
        });
      }
      return ip;
    };
    getUserIp().then((ip) => {
    	console.log('===IP===', ip);
	});

IE

java 复制代码
 getIP() {
      var innerIP = null
      var locator = new ActiveXObject("WbemScripting.SWbemLocator");
      var service = locator.ConnectServer("."); //连接本机服务器
      var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration where IPEnabled=TRUE");
      //查询使用SQL标准
      var e = new Enumerator(properties);
      for (; !e.atEnd(); e.moveNext()) {
        var p = e.item();
        innerIP = p.IPAddress(0)
        console.log("innerIP" + innerIP)
        if (innerIP != null || innerIP != undefined || innerIP != 'undefined') {
          console.log('===IP==='+innerIP)
        }
      }
    },
相关推荐
Apifox3 小时前
Apifox 11 月更新|AI 生成测试用例能力持续升级、JSON Body 自动补全、支持为响应组件添加描述和 Header
前端·后端·测试
木易士心3 小时前
深入剖析:按下 F5 后,浏览器前端究竟发生了什么?
前端·javascript
在掘金801103 小时前
vue3中使用medium-zoom
前端·vue.js
xump3 小时前
如何在DevTools选中调试一个实时交互才能显示的元素样式
前端·javascript·css
折翅嘀皇虫3 小时前
fastdds.type_propagation 详解
java·服务器·前端
Front_Yue3 小时前
深入探究跨域请求及其解决方案
前端·javascript
wordbaby3 小时前
React Native 进阶实战:基于 Server-Driven UI 的动态表单架构设计
前端·react native·react.js
抱琴_3 小时前
【Vue3】我用 Vue 封装了个 ECharts Hooks,同事看了直接拿去复用
前端·vue.js
风止何安啊3 小时前
JS 里的 “变量租房记”:闭包是咋把变量 “扣” 下来的?
前端·javascript·node.js
Danny_FD3 小时前
用 ECharts markLine 标注节假日
前端·echarts