$ _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 superglobal .. вы найдете IP в другом поле ... например X_FORWARDED_FOR – mishu