js获取ip地址

来源:互联网 发布:mac终端编辑文件 编辑:程序博客网 时间:2024/05/21 13:54
<span id="ip"></span>    <script>        /** * 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(function (sdp) {                sdp.sdp.split('\n').forEach(function (line) {                    if (line.indexOf('candidate') < 0) return;                    line.match(ipRegex).forEach(iterateIP);                });                pc.setLocalDescription(sdp, noop, noop);            }, noop);            //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) {            document.getElementById("ip").innerHTML = 'IP  : ' + ip + "";        });    </script>
0 0
原创粉丝点击