PHP获取IP地址以及IP对应的地理位置信息

	/**
	 * 获取ip对应的地理位置信息
	 */
	function get_ip_info($ip){
	    $url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
	    $ip=json_decode(file_get_contents($url));  
	    if((string)$ip->code=='1'){
		return false;
	    }
	    $data = (array)$ip->data;
	    return $data;
	}

	/**
	 * 获取ip地址1
	 */
	function get_real_ip1(){
	    $ip=false;
	    if(!empty($_SERVER['HTTP_CLIENT_IP'])){
	        $ip=$_SERVER['HTTP_CLIENT_IP'];
	    }
	    if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
	        $ips=explode (', ', $_SERVER['HTTP_X_FORWARDED_FOR']);
	        if($ip){ array_unshift($ips, $ip); $ip=FALSE; }
	        for ($i=0; $i < count($ips); $i++){
	            if(!eregi ('^(10│172.16│192.168).', $ips[$i])){
	                $ip=$ips[$i];
	                break;
	            }
	        }
	    }
	    return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
	}
	
	/**
	 * 获取ip地址2
	 */
	function get_real_ip2(){
	    static $realip;
	    if(isset($_SERVER)){
	        if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
	            $realip=$_SERVER['HTTP_X_FORWARDED_FOR'];
	        }else if(isset($_SERVER['HTTP_CLIENT_IP'])){
	            $realip=$_SERVER['HTTP_CLIENT_IP'];
	        }else{
	            $realip=$_SERVER['REMOTE_ADDR'];
	        }
	    }else{
	        if(getenv('HTTP_X_FORWARDED_FOR')){
	            $realip=getenv('HTTP_X_FORWARDED_FOR');
	        }else if(getenv('HTTP_CLIENT_IP')){
	            $realip=getenv('HTTP_CLIENT_IP');
	        }else{
	            $realip=getenv('REMOTE_ADDR');
	        }
	    }
	    return $realip;
	}

	/**
	 * 获取ip地址3
	 */
	function get_real_ip3(){
	    $ip='未知IP';
	    if(!empty($_SERVER['HTTP_CLIENT_IP'])){
	        return is_ip($_SERVER['HTTP_CLIENT_IP'])?$_SERVER['HTTP_CLIENT_IP']:$ip;
	    }elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
	        return is_ip($_SERVER['HTTP_X_FORWARDED_FOR'])?$_SERVER['HTTP_X_FORWARDED_FOR']:$ip;
	    }else{
	        return is_ip($_SERVER['REMOTE_ADDR'])?$_SERVER['REMOTE_ADDR']:$ip;
	    }
	}
	function is_ip($str){
	    $ip=explode('.',$str);
	    for($i=0;$i<count($ip);$i++){ 
	        if($ip[$i]>255){ 
	            return false; 
	        } 
	    } 
	    return preg_match('/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/',$str); 
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值