• 获取本机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)
        })
  • 相关阅读:
    PHP 单态设计模式
    五中常见的PHP设计模式
    PHP如何定义类及其成员属性与操作
    thinkphp 中MVC思想
    1.4 算法
    1.3 迭代器
    1.2 容器-container
    1.1 STL 概述
    2.3顺序容器-deque
    2.2 顺序容器-list
  • 原文地址:https://www.cnblogs.com/zjz666/p/12981124.html
Copyright © 2020-2023  润新知