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)
        }
      }
    },
相关推荐
不好听61313 小时前
React 核心概念:JSX、组件与数据驱动
前端·react.js
触底反弹13 小时前
🔥 React 零基础入门(中):500 行屎山代码到组件化的蜕变
前端·javascript·react.js
不好听61313 小时前
React vs Vue:两大前端框架技术选型深度对比
前端·vue.js·react.js
GuWenyue13 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
GuWenyue13 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
小林ixn14 小时前
从 onclick 到 React 合成事件,再到完整应用逻辑:一次前端架构的深度剖析
前端·react.js·前端框架
Csvn14 小时前
🧩「找不到模块」排查全记录——Monorepo 下 TypeScript 路径别名的 5 种「不通」与根治方案
前端
腻害兔15 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
CodexDave15 小时前
MySQL事务隔离级别与MVCC机制解析
前端·数据库·mysql·nginx·性能优化·负载均衡
Ai_easygo16 小时前
AI Agent开发入门——从ReAct到Tool Calling,拆解Agent的底层运行逻辑
前端·人工智能·react.js