@mrSeller

Почему Request::ip() генерирует ip localhost'a? Как получить реальный ip?

Проект на локальном сервере.
Вывожу в шаблон IP с помощью Request::ip() и получаю 127.0.0.1

Погуглил. Многие с этим сталкиваются, но решений либо нет, либо они не помогают (в основном, это разные методы получения ip).

Как же тогда получить свой реальный ip?
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
SagePtr
@SagePtr
Еда - это святое
Видимо, перед вашим веб-сервером стоит ещё и nginx, а веб-сервер не настроен доверять этому nginx'у.

P. S. А если тестируете на локальной машине, то само собой, адрес будет 127.0.0.1.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
solotony
@solotony
покоряю пик Балмера
static function getIp()
    {
        $ip_address = '127.0.0.1';

        if (!empty($_SERVER['HTTP_CLIENT_IP']))
        {
            $ip_address = $_SERVER['HTTP_CLIENT_IP'];
        }

        if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            if (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') !== false) {
                $iplist = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
                foreach ($iplist as $ip) {
                    $ip_address = $ip;
                }
            } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
                $ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
            }
        }

        if (!empty($_SERVER['HTTP_X_FORWARDED'])) {
            $ip_address = $_SERVER['HTTP_X_FORWARDED'];
        } elseif (!empty($_SERVER['HTTP_X_CLUSTER_CLIENT_IP'])) {
            $ip_address = $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
        } elseif (!empty($_SERVER['HTTP_FORWARDED_FOR'])) {
            $ip_address = $_SERVER['HTTP_FORWARDED_FOR'];
        } elseif (!empty($_SERVER['HTTP_FORWARDED'])) {
            $ip_address = $_SERVER['HTTP_FORWARDED'];
        }
        elseif (!empty($_SERVER['REMOTE_ADDR'])) {
            $ip_address = $_SERVER['REMOTE_ADDR'];
        }

        return $ip_address;
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы