$ _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