【发布时间】:2013-07-19 03:59:31
【问题描述】:
我有一个奇怪的问题。无论我做什么,IP 都是服务器的 IP,而不是客户端/访问者的 IP。怎么办?
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARTDED_FOR'] != '') {
$ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip_address = $_SERVER['REMOTE_ADDR'];
}
return $ip_address;
}
【问题讨论】:
-
你使用什么网络服务器?
-
是进入这部分代码的控件:else { $ip_address = $_SERVER['REMOTE_ADDR']; ?
-
您的 IP 必须在 HTTP_X_FORWARDED_FOR 上?您是否已转储 $_SERVER 并查看您还有什么?一些负载均衡器会使用不同的键。
-
我已经转储了,是的,仍然显示错误的 IP 地址。我认为这是服务器的客户端 IP,而不是我的。我的服务器来自德国,专用。
标签: php