你的位置:首页 > 网站技术 > 正文
04
五月
分类:网站技术 | 评论数:0 | 点击数:1121 | 发表日期时间: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。
另,请在服务器先测试效果后再布署到生产平台哟。
本文标签:
云计算
猜你喜欢:
评论:

昵称(必填)

邮箱

网址

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。