php获取真实ip地址的实例分享

发布时间:2019-09-10编辑:脚本学堂
本文介绍下,用php实现获取真实IP地址的一段代码,有需要的朋友参考下。

获取客户端真实IP地址的代码。

<?php
/**
* 获取客户端真实IP地址
* edit by www.jb200.com
*/
function fun_get_ip(){
static $ip = null;
if($ip)
return $ip; // 不需要计算第二次.
$ip=false;
if($_SERVER['HTTP_VIA']){
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$ip = $_SERVER["HTTP_CLIENT_IP"];
}else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip){
array_unshift($ips, $ip); $ip = false;
}
$ipss = count($ips);
for ($i = 0; $i &lt; $ipss; $i++){
if (!preg_match('/^(10|172.16|192.168)./', $ips[$i])){
$ip = $ips[$i];
break;
}
}
}
}else{
$ip = $_SERVER['REMOTE_ADDR'];
}
# 更兼容的获取.
if(!$ip)
if(!$ip = getenv("REMOTE_ADDR"))
if (!$ip = getenv("HTTP_CLIENT_IP"))
if(!$ip = getenv("HTTP_X_FORWARDED_FOR"))
$ip = false;
return $ip;
}
?>