首页 > 编程语言 >javascript 获取本机ip chrome 谷歌浏览器 extension 谷歌扩展

javascript 获取本机ip chrome 谷歌浏览器 extension 谷歌扩展

时间:2022-10-26 11:55:05浏览次数:52  
标签:RTCPeerConnection extension candidate ip 谷歌 pc window var 本机

代码一:

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

代码二:

function getLocalIPs(callback) {
  var ips = [];

  var RTCPeerConnection = window.RTCPeerConnection ||
    window.webkitRTCPeerConnection || window.mozRTCPeerConnection;

  var pc = new RTCPeerConnection({
    // Don't specify any stun/turn servers, otherwise you will
    // also find your public IP addresses.
    iceServers: []
  });
  // Add a media line, this is needed to activate candidate gathering.
  pc.createDataChannel('');

  // onicecandidate is triggered whenever a candidate has been found.
  pc.onicecandidate = function (e) {
    if (!e.candidate) { // Candidate gathering completed.
      pc.close();
      callback(ips);
      return;
    }
    var ip = /^candidate:.+ (\S+) \d+ typ/.exec(e.candidate.candidate)[1];
    if (ips.indexOf(ip) == -1) // avoid duplicate entries (tcp/udp)
      ips.push(ip);
  };
  pc.createOffer(function (sdp) {
    pc.setLocalDescription(sdp);
  }, function one rror() {});
}

如果获取到的格式为:xxxx-xxxx-xxxx-xxxx.local,则需要改下chrome的设置(默认隐藏了本机ip)
搜索chrome://flags/#enable-webrtc-hide-local-ips-with-mdns
将Anonymize local IPs exposed by WebRTC置为disabled

听说有些版本没有这个设置,那就得再继续找方案了~

标签:RTCPeerConnection,extension,candidate,ip,谷歌,pc,window,var,本机
From: https://www.cnblogs.com/Denny_Yang/p/16827797.html

相关文章

  • Mac 安装谷歌浏览器驱动
    Mac下载安装谷歌浏览器驱动下载对应的的谷歌浏览器对应版本驱动1、查看自己谷歌浏览起版本谷歌浏览器--->右上角三个点--->帮助--->关于GoogleChrome    2......
  • Qt5获取本机IP踩坑总结
    环境win764位,cmake+qt5.9.4获取本机IP代码问题代码其实也不能说是问题,只是在在某些条件下获取的本机IP不全这里只贴出关键函数的代码 QStringListQToolki......
  • 谷歌浏览器 无法翻译此网页的解决方法
    谷歌浏览器自带的翻译对我们来说用处还是很大的,但有的时候突然间就会变成‘无法翻译此网页’,下面针对此问题讲解一下解决方案。因为谷歌浏览器使用的翻译网站域名为transl......
  • Mac电脑使用:查看本机已连接Wi-Fi密码的方法
    在使用Mac电脑的时候,电脑自身所连接成功的Wi-Fi一般都不显示密码,这是苹果出于安全考量的保护措施,但是有时候遇到新的设备想要连接已经连过的Wi-Fi,由于时间太久忘记Wi-Fi密码......
  • idea Translate插件谷歌翻译失效
    原因:谷歌的翻译服务放弃了中国大陆市场解决:C:\Windows\System32\drivers\etc\hosts文件 添加如下内容203.208.41.98translate.google.com203.208.41.98translate.goo......
  • 谷歌翻译不能用解决办法
    1、查找IP 虽然谷歌不再提供translate.google.cn网页版的服务了,但谷歌翻译的API服务还在。只需要通过hosts重定向至国内服务器,即可恢复使用。1、Ping工具首......
  • 谷歌AudioLM :通过歌曲片段生成后续的音乐
    AudioLM是Google的新模型,能够生成与提示风格相同的音乐。该模型还能够生成复杂的声音,例如钢琴音乐或人的对话。结果是它似乎与原版没有区别,这是十分让人惊讶的。为什......
  • 谷歌浏览器 无法翻译此网页的解决办法
    谷歌浏览器自带的翻译对我们来说用处还是很大的,但有的时候突然间就会变成‘无法翻译此网页’,下面针对此问题讲解一下解决方案。目前网上比较靠谱的解决方案是更改host文件......
  • 关于使用谷歌 Chrome 浏览器右键菜单里的网页翻译失效问题
    【解决方法】刷新DNS生效win+r打开cmd,输入 ipconfig/flushdns 回车,刷新DNS,重启浏览器就ok了。 ......
  • 解决谷歌浏览器 Added non-passive event listener to a scroll-blocking 'touchsta
    1.问题描述:vue项目中使用ElementUI的表单form校验单的时候,出现以下警告:虽然他不会直接影响项目出现报错或者无法正常运行,但是这系列警告的存在就会为以后项目运行出现未......