У меня есть неуправляемый 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-адреса не критично (т.е. я надеюсь, что безопасность, в частности, не зависит только от этого).