• js获取客户端IP


    获取客户端公网IP

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

    获取客户端内网IP(IE不支持)

    /**
     * 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);
    });

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

  • 相关阅读:
    爬虫前面
    常用模块学习
    函数、递归、内置函数
    迭代器、装饰器、软件开发规范
    python基础
    列表、字典、集合
    介绍、基本语法、流程控制
    python学习的第一个星期
    vmware使用nat连接配置
    Vue API 3模板语法 ,指令
  • 原文地址:https://www.cnblogs.com/zyh-club/p/11097418.html
Copyright © 2020-2023  润新知