zoukankan      html  css  js  c++  java
  • JS获取IP

    搜狐接口

    <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
    <script type="text/javascript">
      document.write(returnCitySN["cip"] + ',' + returnCitySN["cname"])
    </script>
    

    内网IP

    原文地址:https://ourcodeworld.com/articles/read/257/how-to-get-the-client-ip-address-with-javascript-only

    <script type="text/javascript">
      /**
       * Get the user IP throught the webkitRTCPeerConnection
       * @param onNewIP {Function} listener function to expose the IP locally
       * @return undefined
       */
      function getUserIP(onNewIP) { //  onNewIp - your listener function for new IPs
        //compatibility for firefox and chrome
        var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
        var pc = new myPeerConnection({
            iceServers: []
          }),
          noop = function () {},
          localIPs = {},
          ipRegex = /([0-9]{1,3}(.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g,
          key;
    
        function iterateIP(ip) {
          if (!localIPs[ip]) onNewIP(ip);
          localIPs[ip] = true;
        }
    
        //create a bogus data channel
        pc.createDataChannel("");
    
        // create offer and set local description
        pc.createOffer().then(function (sdp) {
          sdp.sdp.split('
    ').forEach(function (line) {
            if (line.indexOf('candidate') < 0) return;
            line.match(ipRegex).forEach(iterateIP);
          });
    
          pc.setLocalDescription(sdp, noop, noop);
        }).catch(function (reason) {
          // An error occurred, so handle the failure to connect
        });
    
        //listen for candidate events
        pc.onicecandidate = function (ice) {
          if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;
          ice.candidate.candidate.match(ipRegex).forEach(iterateIP);
        };
      }
    
      // Usage
    
      getUserIP(function (ip) {
        alert("Got IP! :" + ip);
      });
    </script>
    
  • 相关阅读:
    HDU5000 (DP + 规律)
    HDU5127 神坑题---vector 、 list 、 deque 的用法区别
    HDU5128 细心、细心、细心
    dij单源最短路纯模板
    POJ 1236 SCC+缩点
    SCC(强连通分量)
    用树状数组求数组内的逆序对数
    HDU 1811 并查集
    大数模板,只要不是手敲,非常好用
    市赛
  • 原文地址:https://www.cnblogs.com/myc-xiaochaochao/p/13821328.html
Copyright © 2011-2022 走看看