分类:
网站技术
| 评论数:0 | 点击数:3009 | 发表日期时间:2015-05-04 23:40:34
本文导读:
使用加速乐或者360网站卫士后,虽然可以保护真实服务器IP了,但部分网站获取用户IP时只获取到用户使用加速服务的某一个节点服务器,而不是用户真实IP,所以提供这个PHP函数以修正这个问题。
正文
原网站获取用户IP时使用的是$_SERVER['REMOTE_ADDR']。但使用加速乐或者360网站卫士的加速服务后,只能获取到用户访问加速节点服务器的IP,而不是真实用户IP,所以使用以下源码解决:
function getip() {
if (isset($_SERVER)) {
if (isset($_SERVER[HTTP_X_FORWARDED_FOR])) {
$realip = $_SERVER[HTTP_X_FORWARDED_FOR];
} elseif (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");
} elseif (getenv("HTTP_CLIENT_IP")) {
$realip = getenv("HTTP_CLIENT_IP");
} else {
$realip = getenv("REMOTE_ADDR");
}
}
return $realip;
}
最后 echo getip();即可输出用户IP。
另,请在服务器先测试效果后再布署到生产平台哟。
猜你喜欢:
评论: