@Let_peace

Почему post запрос приходит с другого ip?

У меня есть два скрипта PHP.

В первом скрипте я вычисляю ip (пусть это будет ip1), вывожу его. Затем с помощью curl отправляю post запрос на второй скрипт, где также вычисляю ip (пусть это будет ip2), возвращаю данное ipв первый скрипт, вывожу его. Получается, что ip1 не равен ip2. Хотя, насколько я понимаю, они должны быть одинаковыми... Я пытаюсь сделать некую проверку на то, что один и тот же пользователь использует тот и другой скрипт.

Часть первого скрипта:
$ip1 = $_SERVER['REMOTE_ADDR'];
echo $ip1;

$ch = curl_init(); // $ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url); // тут url второго скрипта
curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); // некоторые данные, которые обрабатываются во втором скрипте
$ip2 = curl_exec($ch);
curl_close($ch);
var_dump($ip2); // в данной переменной содержится ip2, вычисленный во втором скрипте


Суть второго скрипта:
$ip2 = $_SERVER['REMOTE_ADDR'];
echo $ip2;


Как вы уже поняли, данные два ip не совпадают.

Есть подозрения, что моя логика совершенно неверна... Пожалуйста, помогите понять, почему так происходит...
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
Aetae
@Aetae
Тлен
cutl запрос делает твой сервер, а не клиент, само собой второй скрипт получает ip твоего сервера.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
AgentSmith
@AgentSmith
Это мой правильный ответ на твой вопрос
Скорее всего ты не проверяешь все хедеры. Как минимум куки должны быть одинаковыми
Ответ написан
Комментировать
tomclancys
@tomclancys
У вас веб-сервер скорее всего неправильно настроен и IP клиента не проксируется внутри сервера.
Пример конфига NGINX:
location / {
        proxy_pass http://your_server_ip:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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