Задать вопрос
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com

Определение IP-адреса. Какой выбрать?

Вот ситуация:
$_SERVER['HTTP_X_FORWARDED_FOR']: 111.111.111.111
$_SERVER['REMOTE_ADDR']: 222.222.222.222
Какой IP посетителя считать верным?
Если заголовков будет больше?
Есть ли единый правильный метод определения IP пользователя?
Спасибо.
  • Вопрос задан
  • 5186 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
xmoonlight
@xmoonlight Автор вопроса
https://sitecoder.blogspot.com
Только так: $_SERVER['REMOTE_ADDR'];
т.к. все остальное - подделывается :(
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
nalomenko
@nalomenko
Руководитель отдела разработок в студии «Lava»
Эта статья Вам поможет
Ответ написан
Комментировать
Melkij
@Melkij
DBA Team для вашего PostgreSQL?
Какой IP посетителя считать верным?

Оба.

Есть ли единый правильный метод определения IP пользователя?

Логировать всё.

В общем случае - писать REMOTE_ADDR. Свои веб-сервера настраивать на выдачу REMOTE_ADDR в тот адрес, который открыл соединение до фронтенда.
Ответ написан
Комментировать
private function getUserIp(){
        if (!empty($_SERVER['HTTP_X_REAL_IP']))   //check ip from share internet
        {
            $ip=$_SERVER['HTTP_X_REAL_IP'];
        }
        elseif (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
        {
            $ip=$_SERVER['HTTP_CLIENT_IP'];
        }
        elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))   //to check ip is pass from proxy
        {
            $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
        }
        else
        {
            $ip=$_SERVER['REMOTE_ADDR'];
        }
        return $ip;
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы