zoukankan      html  css  js  c++  java
  • 浏览器获取当前ip

    function findIP(callback) {
        var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; //compatibility for firefox and chrome
        //console.log(myPeerConnection )
    
        var restartConfig = { iceServers: [] };
        // var pc = new myPeerConnection({ iceServers: [] }),
        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 ipIterate(ip) {
            if (!localIPs[ip]) callback(ip);
            localIPs[ip] = true;
        }
        pc.setConfiguration(restartConfig);
        pc.createDataChannel("");
        pc.createOffer().then(function(sdp) {
            sdp.sdp.split('
    ').forEach(function(line) {
                if (line.indexOf('candidate') < 0) return;
                line.match(ipRegex).forEach(ipIterate);
            });
            pc.setLocalDescription(sdp, noop, noop);
        });
        pc.onicecandidate = function(ice) {
            if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;
            ice.candidate.candidate.match(ipRegex).forEach(ipIterate);
        };
    }
    
    findIP(function(ip) {
        console.log('got ip: ', ip);
    });

    如果有些浏览器不能获取出来  试试清缓存在执行上述代码 ctrl+shift+delete

  • 相关阅读:
    返回一个整数数组中最大子数组的和 1
    软件工程第一周开课博客
    体温上报系统总结
    Android 布局中如何使控件居中
    Android:Unable to find explicit activity class报错
    Android Studio 线性布局
    相对布局
    HTML5 video视频
    阅读笔记——《人月神话》
    体温汇报系统界面
  • 原文地址:https://www.cnblogs.com/myloveblogs/p/11817097.html
Copyright © 2011-2022 走看看