获得客户端真实的IP地址

发表于:2007-07-01来源:作者:点击数: 标签:
function GetIP(){ if (getenv(HTTP_CLIENT_IP) strcasecmp(getenv(HTTP_CLIENT_IP), unknown)) $ip = getenv(HTTP_CLIENT_IP); else if (getenv(HTTP_X_FORWARDED_FOR) strcasecmp(getenv(HTTP_X_FORWARDED_FOR), unknown)) $ip = getenv(HTTP_X_FORWARDED_F
function GetIP(){
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER[@#REMOTE_ADDR@#]) && $_SERVER[@#REMOTE_ADDR@#] && strcasecmp($_SERVER[@#REMOTE_ADDR@#], "unknown"))
$ip = $_SERVER[@#REMOTE_ADDR@#];
else
$ip = "unknown";
return($ip);
}


即使用户通过代理服务器上网,也能查出他的IP。但是要求代理服务器的类型是transparent类型。如果代理服务器是anonymous或者是high anonymous类型,HTTP_X_FORWARDED_FOR也无能为力了。

原文转自:http://www.ltesting.net