zoukankan      html  css  js  c++  java
  • 获取本机ip地址

    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)
        })
  • 相关阅读:
    四轴PID思路整理
    STM32输入捕获TIM2四通道
    四轴和遥控器的对应
    四层板学习(二)
    四层板学习(一)布线前的准备
    冲突的处理方法
    散列表
    重设置电脑时间
    深圳销量统计源码分析
    源码分析
  • 原文地址:https://www.cnblogs.com/zjz666/p/12981124.html
Copyright © 2011-2022 走看看