Получить IP-адрес пользователя в laravel с помощью аналогичного метода HTTP_X_FORWARDED_FOR

Мне нужно получить IP-адрес моих пользователей ».

Я нашел эту статью Как получить адрес клиента Ip в Laravel 5.1?

В вышеупомянутой статье используется Request::ip();

Однако этот метод возвращает IP-адрес моего сервера. Из того, что я могу понять из других источников, это происходит, когда сайт является локальным, но сайт размещен и находится на сервере.

Этот сайт доступен в режиме реального времени и онлайн, но он может ссылаться на localhost , так как сайт может сидеть на своем собственном сервере (у меня нет опыта в конфигурации сервера, чтобы узнать, верно это или нет, просто догадка).

Когда я подключаюсь к mysql.phpmyadmin.hosting.com базы данных, я делаю это с использованием ссылок на localhost , а не как mysql.phpmyadmin.hosting.com качестве узла mysql.phpmyadmin.hosting.com данных. Поэтому я предполагаю, что Request::ip(); возвращает сервер ip, потому что сайт как-то сидит localhost.

Однако, если я использую $ _SERVER ['HTTP_X_FORWARDED_FOR']; Я получаю правильный IP-адрес.

Теперь на мой последний вопрос: безопасно ли это использовать? Есть ли другой способ использовать функцию Laravel для выполнения этого запроса?

Из того, что я могу понять, $ _SERVER ['HTTP_X_FORWARDED_FOR']; могут иметь дыры в безопасности, в соответствии с тем, как получить IP-адрес клиента в PHP? ,

Могу ли я использовать $_SERVER['HTTP_X_FORWARDED_FOR']; безопасно, не беспокоясь? Если нет, то каким другим способом я могу пойти, чтобы безопасно получить IP-адрес пользователей?

Solutions Collecting From Web of "Получить IP-адрес пользователя в laravel с помощью аналогичного метода HTTP_X_FORWARDED_FOR"

Риск с X-Forwarded-For заключается в том, что пользователь может сам создать заголовок и, таким образом, передать любой желаемый IP-адрес.

Решение состоит в том, чтобы доверять только заголовку, когда REMOTE_ADDR – это ваш доверенный прокси. Существует пакет Laravel, который позволяет вам применять это ограничение.