码迷,mamicode.com
首页 > 其他好文 > 详细

获取本机ip地址

时间:2020-05-28 16:09:31      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:webkit   false   获取本机ip   nec   optional   off   media   rip   web   

function getIPs(callback) {
      var ip_dups = {};
      //compatibility for firefox and chrome
      var RTCPeerConnection = window.RTCPeerConnection ||
        window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
      var mediaConstraints = {
        optional: [{
          RtpDataChannels: false
        }]
      };
      //firefox already has a default stun server in about:config
      //  media.peerconnection.default_iceservers =
      //  [{"url": "stun:stun.services.mozilla.com"}]
      var servers = undefined;
      //add same stun server for chrome
      if (window.webkitRTCPeerConnection)
        servers = {
          iceServers: [{
            urls: "stun:stun.services.mozilla.com"
          }]
        };

      //construct a new RTCPeerConnection
      var pc = new RTCPeerConnection(servers, mediaConstraints);
      //listen for candidate events
      pc.onicecandidate = function (ice) {
        //skip non-candidate events
        if (ice.candidate) {

          //match just the IP address
          var ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3})/
          if (ip_regex.exec(ice.candidate.candidate) != null) {
            var ip_addr = ip_regex.exec(ice.candidate.candidate)[1];

            //remove duplicates
            if (ip_dups[ip_addr] === undefined)
              callback(ip_addr);

            ip_dups[ip_addr] = true;
          }

        }
      };

      //create a bogus data channel
      pc.createDataChannel("");

      //create an offer sdp
      pc.createOffer(function (result) {

        //trigger the stun server request
        pc.setLocalDescription(result, function () {});

      }, function () {});
    }
  
    getIPs(function(ip){
      console.log(ip)
    })

 

获取本机ip地址

标签:webkit   false   获取本机ip   nec   optional   off   media   rip   web   

原文地址:https://www.cnblogs.com/zjz666/p/12981124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!