curl use proxy php
Отправка запроса через прокси-сервер с помощью php и cURL
В связи с тем, что РКН объявил святую войну одному мессенджеру, под дружественный огонь попали и многие другие сервисы. IP-адреса которых были, случайно или не совсем случайно, заблокированы. И к одной из жертв мне пришлось искать возможность подключиться – отправлять запросы, для получения данных. Самое простое решение, это настроить vpn на сервере или воспользоваться другим сервером. Но это дело дорогое и трудозатратое. Поэтому такие варианты пришлось сразу исключить. Немного поломав голову, пришла более простая идея – воспользоваться прокси-серверами. Прокси можно найти в свободном доступе очень быстро и многие из них бесплатные. Остается немного дописать код отправки запроса, который будет отправляться не напрямую к заблокированному сервису, а через прокси.
Запросы через прокси с помощью cURL
Для отправки запросов через прокси-сервера, идеально подходит cURL. Достаточно добавить всего пару строк в код и все готово. Стоит только обратить внимание, что некоторые прокси не дают просто так к ним подключиться, а только с авторизацией. Но и такой вариант не доставит хлопот – еще одна строка в коде и запросы будут отправляться.
Единственный минус, с которым придется мириться, это скорость отправки данных. Через прокси-сервера скрипт будет выполняться медленней. Скорость будет зависть от прокси, через который работает скрипт. Очевидно, что через платные сервера все будет работать быстрее. Но это уже зависит от необходимости и финансовой возможности каждого.
Для тестирования скрипта я залил на блог скрипт, к которому будет отправляться запрос через прокси-сервер. В ответ на обращение, скрипт вернет ip-адрес, с которого пришел запрос. Если слать данные на прямую, то ip будет вашего сервера, а если через прокси, то соответственно ip прокси-сервера.
Остается только привести пример запроса с подробными комментариями:
Послесловие
Если кому-то лень гуглить прокси-сервера, то вы можете воспользоваться вот этим сервисом: список прокси. Или вот этим: мне повезет
performing HTTP requests with cURL (using PROXY)
I have this proxy address: 125.119.175.48:8909
16 Answers 16
Then you can connect through proxy from (many) application.
And, as per comment below, for https:
The above solutions might not work with some curl versions I tried them for myself(curl 7.22.0). But what worked for me was:
Hope it solves the issue better!
WHERE YOURPROXY:YOURPORT is exactly that, your ip and port proxy :-).
your system will start to use the proxy, and just the opposite with:
192.168.X.X:XX put your proxy server ip and port.
-v verbose mode it will give more details including headers and response.
I like using this in order to get the IP under which I am seen
Hope this helps someone.
For curl you can configure proxy in your
/.curlrc ( _curlrc on Windows) file by adding proxy value, the syntax is:
Just summarizing all great mentioned answers:
With a proxy with authentication I use:
because, I don’t know why curl doesn’t use/catch http[s]_proxy environment variables.
You don’t need to export the http[s]_proxy shell variable if you’re just setting the proxy for a one off command. e.g.
This worked perfectly for me, the error comes because curl need to set the proxy
Remmember replace the proxy with your proxy, mine, «example» was http://10.1.1.50:8080/.
In case the proxy is using automatic proxy with PAC file. We can find the actual proxy from the javascript from the PAC URL.
And if the proxy needs authentication, we can first use a normal web-browser to access the website which will promote authentication dialog. After authentication, we can use wireshark to capture the http package sends to the proxy server, from the http package, we can get the auth token from http header: Proxy-Authorization
Then we can set the http_proxy environment variable and also include auth token in the http header: Proxy-Authorization
PHP: Using cURL with a proxy.
This is a guide on how to use a proxy with PHP’s cURL functions. In this tutorial, we will send our HTTP request via a specific proxy IP and port.
Why use a proxy?
There are various reasons why you might want to use a proxy with cURL:
Using a proxy with PHP’s cURL functions.
Take a look at the following PHP code, which you can use to authenticate with a proxy via cURL and send a HTTP GET request.
In the code snippet above, we connected to a proxy that requires authentication before sending a simple GET request.
If the proxy in question does not require authentication, then you can omit the CURLOPT_PROXYUSERPWD line from your code.
“Failed to connect to 1.2.3.4 port 1129: Timed out”
This means that cURL could not connect to the proxy on that IP and port. Make sure that both the IP and port are correct and that the proxy is operating correctly.
“Failed to connect to 1.2.3.4 port 1129: Connection refused”
This error usually occurs when you have specified an incorrect port number. i.e. The IP address of the proxy was correct, but it is not listening for requests on that port. There is also the possibility that the server is up, but the software that runs the proxy is not running.
“Received HTTP code 407 from proxy after CONNECT”
The username and password combination that you are using with CURLOPT_PROXYUSERPWD is incorrect. Make sure that you are separating the username and password by a colon : character.
Curl use proxy php
PHP поддерживает libcurl, библиотеку, созданную Daniel»ом Stenberg»ом, которая даёт возможность соединяться с серверами различных типов и по разным протоколам.
libcurl в настоящее время поддерживает протоколы http, https, ftp, gopher, telnet, dict, file и ldap.
libcurl также поддерживает сертификаты HTTPS, HTTP POST, HTTP PUT, загрузку по FTP (это можно сделать также РНР-расширением ftp), загрузку на основе форм HTTP, прокси, куки и аутентификацию user+password.
Эти функции были введены в PHP 4.0.2.
curl_init
Описание
resource curl_init([string url])
Функция curl_init() инициализирует новую сессию и возвратит CURL-дескриптор для использования в функциях curl_setopt(), curl_exec() и curl_close(). Если необязательный параметр url предоставлен, то опция CURLOPT_URL получит значение этого параметра. Вы можете вручную устанавливать его с помощью функции curl_setopt().
curl_setopt
Описание
bool curl_setopt (resource ch, string option, mixed value)
Функция curl_setopt() устанавливает опции для CURL-сессии, идентифицируемой параметром ch. Параметр option является опцией, которую вы хотите установить, а value это значение опции option.
Параметр value должен быть long для следующих опций (специфицированных параметром option):
Параметр value должен быть строкой для следующих значений параметра option:
Следующие опции ожидают дескриптора файла, который получается с помощью функции fopen():
Параметр value должен быть функцией следующего вида long write_callback (resource ch, string data) для следующих значений параметра option:
Параметр value должен быть функцией следующего вида string read_callback (resource ch, resource fd, long length)<> для следующих значений параметра option:
Curl через прокси
Добрый день.
Возникло желание спарсить страницу с сайта в инете локальным скриптом. Да вот незадача: на локальном компе, где стоит Денвер со скриптом-парсером, интернет через прокси-сервер.
Состряпал вот такой скрипт:
Помощь в написании контрольных, курсовых и дипломных работ здесь.

как зайти на сайт через прокси с помощью курла? в гугле много нашел примеров но там не указываются.
Curl через прокси
В общем виде всё так: 9
а как это понять инет через прокси сервер?
тоесть весь трафик идет на прокси? или это HTTP прокси
Добавлено через 34 секунды
когда вы просматривает страницу в браузере вы настраиваете его ( браузер ) под прокси или проста открываете и все?
а какой там прокси?
socks 4/a/5? или имеено http. ( curl вроде последний толька понимает. хотя если бы не Http ответ был бы другим ответ бы был другим
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Curl + proxy: не работает рабочий прокси
Здравствуйте! Я пытаюсь сделать запрос на сайт через прокси. Вот мой код: CURL.
Как быстро скачивать через прокси с файлообменников или без использования прокси
Доброго времени суток, как вы возможно знаете, для загрузки с облака маил ру или ядаа пользователи.
При передаче post запроса через прокси сервер в ответ приходят ошибки с прокси сервера
При передаче post запроса через прокси сервер в ответ прилетают ошибки с прокси сервера.



