A-A+

可以获得访客IP地址的函数

2012年05月10日 PHP技术文章 暂无评论 阅读 66 views 次

在网站应用中,我们经常会用到读取访客IP的功能,下面是本博找到的几个可以获得访客IP地址的函数,便于进行访客统计,希望大家仔细研读,学习其中精华及原理,只需要一个函数即可获取访问的IP地址,在需要的地方将其包含进来,而在使用时直接echo出来即可,是不是很简单呢,快给自己的网站加一个可以获得访客 ip 地址的函数功能吧。

<?php   
//获取真实IP   
//函数一   
function getip() {   
if (isset($_SERVER)) {   
if (isset($_SERVER&#91;HTTP_X_FORWARDED_FOR&#93;)) {   
   $realip = $_SERVER&#91;HTTP_X_FORWARDED_FOR&#93;;   
} elseif (isset($_SERVER&#91;HTTP_CLIENT_IP&#93;)) {   
   $realip = $_SERVER&#91;HTTP_CLIENT_IP&#93;;   
} else {   
   $realip = $_SERVER&#91;REMOTE_ADDR&#93;;   
}   
} else {   
if (getenv("HTTP_X_FORWARDED_FOR")) {   
   $realip = getenv( "HTTP_X_FORWARDED_FOR");   
} elseif (getenv("HTTP_CLIENT_IP")) {   
   $realip = getenv("HTTP_CLIENT_IP");   
} else {   
   $realip = getenv("REMOTE_ADDR");   
}   
}   
return $realip;   
}   
  
//函数二:   
function get_real_ip(){   
$ip=false;   
if(!emptyempty($_SERVER&#91;"HTTP_CLIENT_IP"&#93;)){   
$ip = $_SERVER&#91;"HTTP_CLIENT_IP"&#93;;   
}   
if (!emptyempty($_SERVER&#91;'HTTP_X_FORWARDED_FOR'&#93;)) {   
$ips = explode (", ", $_SERVER&#91;'HTTP_X_FORWARDED_FOR'&#93;);   
if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }   
for ($i = 0; $i < count($ips); $i++) {   
if (!eregi ("^(10|172\.16|192\.168)\.", $ips&#91;$i&#93;)) {   
$ip = $ips&#91;$i&#93;;   
break;   
}   
}   
}   
return ($ip ? $ip : $_SERVER&#91;'REMOTE_ADDR'&#93;);   
}   
  
//函数三:   
function strFunIP()   
{   
if ($HTTP_SERVER_VARS&#91;"HTTP_X_FORWARDED_FOR"&#93;)   
$ip = $HTTP_SERVER_VARS&#91;"HTTP_X_FORWARDED_FOR"&#93;;   
elseif ($HTTP_SERVER_VARS&#91;"HTTP_CLIENT_IP"&#93;)   
$ip = $HTTP_SERVER_VARS&#91;"HTTP_CLIENT_IP"&#93;;   
elseif ($HTTP_SERVER_VARS&#91;"REMOTE_ADDR"&#93;)   
$ip = $HTTP_SERVER_VARS&#91;"REMOTE_ADDR"&#93;;   
elseif (getenv("HTTP_X_FORWARDED_FOR"))   
$ip = getenv("HTTP_X_FORWARDED_FOR");   
elseif (getenv("HTTP_CLIENT_IP"))   
$ip = getenv("HTTP_CLIENT_IP");   
elseif (getenv("REMOTE_ADDR"))   
$ip = getenv("REMOTE_ADDR");   
else  
$ip = "Unknown";   
return $ip;   
}   
?>
<?php   
//使用方法:   
echo getip();  //函数一使用   
echo "<br>";    
echo get_real_ip(); //函数二使用   
echo "<br>";   
echo strFunIP(); //函数三使用   
?>
标签:

给我留言