Как определяют реальный IP адрес запроса?

У меня есть парсинг , реализованный через curl . Я использую мобильные прокси через https. На одном сервере запускаю парсинг и он работает, а на другом запускаю - нет (блокировка). Подскажите, каким образом сайт, который парсят, определяет с какого ip-адреса идет парсинг , ведь используется прокси ?

JS не работает, Прокси стоят одинаковые (мобильные), Условия работы парсинга одинаковые, за исключением ip-сервера, на котором он находится. 1 сервер - россия 2 сервер - беларусь


Ответы (2 шт):

Автор решения: magnitus

Это может быть двусторонний пинг, т.к сервера находятся в разных локациях

Запустив пинг к клиентскому IP, со стороны нашего сервера, можно узнать приблизительную длинну маршрута. То же самое можно сделать со стороны браузера, XMLHTTPRequest дёргает пустую страницу нашего nginx. Полученную разницу в петле более 30 мс можно интерпретировать как туннель.

https://habr.com/ru/post/263557/

→ Ссылка
Автор решения: phpBear

В свое время я защищался от хождения и граббинга моих сайтов в несколько потоков через прокси двумя путями. 1) Через crontab опрашивал популярные форумы и сайты где выкладывают бесплатные прокси. На их основе создавал ban-list в iptables 2) В момент прихода на мою страницу посетителя выполнял нехитрые действия

$isProxy = false;
$proxyPortsList = [8080,8081,3128,81,88 ... ...];
foreach( $proxyPortsList as $port) {
    $userIP = getENV('REMOTE_ADDR');
    $fp = fsockopen( $userIP, $port, $errno, $errstr, 30);
    if ( $fp ) {
        $isProxy = true;
        fclose($fp);
    }

}
if ( $isProxy ) {
    header('Location: https://google.com');
}

В 90% случаев помогало. :)

Так что, вполне может быть что-то из этого использует и сервер на который Вы ходите.

→ Ссылка