В связи с тем, что РКН объявил святую войну одному мессенджеру, под дружественный огонь попали и многие другие сервисы. IP-адреса которых были, случайно или не совсем случайно, заблокированы. И к одной из жертв мне пришлось искать возможность подключиться – отправлять запросы, для получения данных. Самое простое решение, это настроить vpn на сервере или воспользоваться другим сервером. Но это дело дорогое и трудозатратое. Поэтому такие варианты пришлось сразу исключить. Немного поломав голову, пришла более простая идея – воспользоваться прокси-серверами. Прокси можно найти в свободном доступе очень быстро и многие из них бесплатные. Остается немного дописать код отправки запроса, который будет отправляться не напрямую к заблокированному сервису, а через прокси.
Запросы через прокси с помощью cURL
Для отправки запросов через прокси-сервера, идеально подходит cURL. Достаточно добавить всего пару строк в код и все готово. Стоит только обратить внимание, что некоторые прокси не дают просто так к ним подключиться, а только с авторизацией. Но и такой вариант не доставит хлопот – еще одна строка в коде и запросы будут отправляться.
Единственный минус, с которым придется мириться, это скорость отправки данных. Через прокси-сервера скрипт будет выполняться медленней. Скорость будет зависть от прокси, через который работает скрипт. Очевидно, что через платные сервера все будет работать быстрее. Но это уже зависит от необходимости и финансовой возможности каждого.
Для тестирования скрипта я залил на блог скрипт, к которому будет отправляться запрос через прокси-сервер. В ответ на обращение, скрипт вернет ip-адрес, с которого пришел запрос. Если слать данные на прямую, то ip будет вашего сервера, а если через прокси, то соответственно ip прокси-сервера.
Остается только привести пример запроса с подробными комментариями:
// запрос на тестовый адрес $url = 'https://vk-book.ru/my-ip.php'; // ip и порт прокси $proxy = '109.188.81.101:8080'; // если требуется авторизация на прокси-сервере //$proxyauth = 'user:password'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); // домен, на который осуществляется отправка // тестового запроса, работает через https // поэтому нужно добавить флаги для работы с ssl curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // подключение к прокси-серверу curl_setopt($ch, CURLOPT_PROXY, $proxy); // если требуется авторизация // curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth); // отправка запроса curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 1); $curl_scraped_page = curl_exec($ch); curl_close($ch); // вывод ответа сервера // должен вернуть все заголовки и ip с которого // было обращение, в данном случае это 109.188.81.101 var_dump($curl_scraped_page);
Послесловие
Если кому-то лень гуглить прокси-сервера, то вы можете воспользоваться вот этим сервисом: список прокси. Или вот этим: мне повезет
Великолепно!!!
Согласен