zoukankan      html  css  js  c++  java
  • JS获取当前IP地址

    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){
    	document.write(ip)
    });
    
    
  • 相关阅读:
    LINUX开发使用的3个远程工具
    NDK 链接第三方静态库的方法
    GMap.NET 显示GIF图标的定制
    从MySQL获取数据
    web2py远程开发
    升级后,使用dynamic报错
    实用的MVVM:ImageView
    node.js 连接 mysql
    vector常见用法
    XCODE中配置使用boost
  • 原文地址:https://www.cnblogs.com/1748sb/p/14195043.html
Copyright © 2011-2022 走看看