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 пользователя?
Спасибо.
  • Вопрос задан
  • 5055 просмотров
Решения вопроса 1
xmoonlight
@xmoonlight Автор вопроса
https://sitecoder.blogspot.com
Только так: $_SERVER['REMOTE_ADDR'];
т.к. все остальное - подделывается :(
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
nalomenko
@nalomenko
Руководитель отдела разработок в студии «Lava»
Эта статья Вам поможет
Ответ написан
Комментировать
Melkij
@Melkij
PostgreSQL DBA
Какой 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;
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
24 апр. 2024, в 23:40
10000 руб./за проект
24 апр. 2024, в 23:13
130000 руб./за проект