
js虽然无法直接获取手机IP地址,但是Javascript能够创建Http请求,并且服务器端语言能够检索用户公共IP。换句话说,如果您要检索用户的公共IP,则 必须从请求到任何服务器的依赖,以便检索IP。但是,随着WebRTC的引入,您将能够使用RTCPeerConnection技巧性地检索用户的私有IP。
在本文中,您将学习如何通过一些技巧轻松地检索用户IP(使用纯JavaScript的私有IP和使用第三方服务的公共IP)。
一、使用webRTC(获取内网IP)
<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(fu...点击查看剩余70%
			
			
				
			
	
网友评论0