У меня есть неуправляемый VPS-сервер. Я пытаюсь получить IP-адрес клиента из PHP $ _ SERVER ['REMOTE_ADDR']
, но он всегда дает мне то же самое для всех пользователей, что является внутренним IP-адресом сервера.
Я провел некоторые исследования и разработки и установил для этого брандмауэр на сервере, затем я проверил то же самое на другом моем VPS-сервере, но здесь он дает правильный IP-адрес клиента. Теперь я уверен, что на моем первом VPS также будут некоторые параметры конфигурации, которые могут дать мне правильный IP-адрес клиента.
Пожалуйста, дайте мне знать, какую конфигурацию мне нужно сделать на сервере, чтобы получить это.
РЕДАКТИРОВАТЬ -
Как только я заметил разницу -
На VPS 1, где у него нестандартный порт ssh 27560. Другой может быть доступен через порт 22. Я не уверен, что это создает проблему здесь. Пожалуйста, предложите.
Не знаю, какой брандмауэр вы используете, но похоже, что он проксирует веб-трафик через себя. Если он работает как прокси-сервер, то может быть установлена переменная $_SERVER['HTTP_X_FORWARDED_FOR']. Если это так, то можно проверить, установлена ли она, и если да, то использовать ее. В противном случае, вернитесь к REMOTE_ADDR.
Обратите внимание также, что IP клиента может быть подделан довольно легко, поэтому я надеюсь, что не критично получить правильный IP во всех случаях (т.е. я надеюсь, что безопасность в частности не зависит только от этого).
.