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

  • 相关阅读:
    Jedis入门
    redis的安装
    redis概述
    020 SpringMVC返回Json
    019 数据绑定流程分析(校验)
    018 数据绑定流程分析(包括数据转换与格式化)
    maven添加插件,与maven打包
    定制库到maven库
    maven仓库
    Maven启动代理访问
  • 原文地址:https://www.cnblogs.com/myloveblogs/p/11817097.html
Copyright © 2011-2022 走看看