$ _SERVER ['REMOTE_ADDR']返回127.0.0.1。
是因为我安装了清漆缓存和数据去清漆,然后Apache和服务器认为请求来自清漆不客户端?
$ _SERVER ['REMOTE_ADDR']返回127.0.0.1。
是因为我安装了清漆缓存和数据去清漆,然后Apache和服务器认为请求来自清漆不客户端?
获取远程IP地址是这样的:
public function getRemoteIPAddress() {
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
return $_SERVER['HTTP_CLIENT_IP'];
} else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
return $_SERVER['REMOTE_ADDR'];
}
对不起downvote,但这是不好的建议。请参阅[@ Ka。的答案](http://stackoverflow.com/a/37254156/2032498)。另外,'HTTP_CLIENT_IP'可以来自客户端,因此不可靠。一般来说,首先确保'REMOTE_ADDR'是可信的主机。只有这样你才能依赖更多的HTTP头文件,比如'X_FORWARDED_FOR'。 – Kontrollfreak
当心,$ _ SERVER [“HTTP_X_FORWARDED_FOR”]可以包含多个IP,看到How do I get the correct IP from HTTP_X_FORWARDED_FOR if it contains multiple IP Addresses?
我不知道光油但可能是案例..我有这个问题时,使用nginx作为负载平衡器..只是print_r $ _SERVER超全球..你会发现IP在不同的领域..像X_FORWARDED_FOR – mishu