PHP获取客户端IP地址的方法。
if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]) {
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
} elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]) {
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
} elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]) {
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
} 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";
}
echo "IP: ".$ip;
其实这个方法有问题,亲测, 如果你网站的域名挂CDN了,HTTP_X_FORWARDED_FOR 会获取到用户的伪造IP ,而REMOTE_ADDR 只会获取到CDN的IP,,,REMOTE_ADDR第二个IP才是用户的真正IP。。。 哎,为此我很烦恼啊。。。 就是用的dz2.5的获取IP测试的。
不错,代码已收藏