@B0nG

PHP При каких обстоятельствах приходит пустой IP человека?

Собственно вопрос весь в заголовке.
Но если подробнее - есть некий код, который при авторизации человека - пишет с какого IP он сидит.
В 80% пишется нормально, но в 20% - IP приходит пустым. Почему? Как добиться этого?
  • Вопрос задан
  • 196 просмотров
Пригласить эксперта
Ответы на вопрос 1
XXXXPro
@XXXXPro
Fullstack Web developer
Тут есть два варианта. Первый — пользователь заходит через IPv6, а скрипт пытается преобразовать его адрес с помощью ip2long, который корректно понимает только IPv4. Второй — пользователь заходит через proxy, который что-то передает в X-Forwarded-For, что некорректно преобразовывается в IP-адрес (например, передает не IP, а доменное имя).
Чтобы этого не было, нужно сохранять IP не как число, а как строку, причем сохранять туда и $_SERVER['REMOTE_ADDR'], и $_SERVER['HTTP_X_FORWARDED_FOR'] (тогда как многие скрипты при наличии второго REMOTE_ADDR просто отбрасывают).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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