аутентифицировать бросить прокси Squid (PHP-сокет) - PullRequest
1 голос
/ 27 июня 2010

Я хотел бы создать программу, которая могла бы аутентифицировать бросок прокси Squid. Я использую сокет в PHP язык

Ответы [ 2 ]

0 голосов
/ 27 июня 2010

Я предполагаю, что вы имеете в виду, что вы хотите сделать HTTP-запрос через прокси, который требует аутентификации, а не использовать метод аутентификации в Squid для проверки запросов к вашему веб-серверу.

Вам просто нужно установить правильные значениядля CURLOPT_PROXYAUTH CURLOPT_PROXYPORT (обычно 3128) и CURLOPT_PROXYTYPE (http)

$ch = curl_init();
$opts=array(
   CURLOPT_PROXY="squid.example.com",
   CURLOPT_PROXYPORT=>3128,
   CURLOPT_PROXYTYPE=>CURLPROXY_HTTP,
   CURLOPT_PROXYAUTH=>CURLAUTH_BASIC,
   CURLOPT_PROXYUSERPWD=>"${username}:${password}",
   CURLOPT_URL=>"http://www.example.com/sompage.html");
curl_setopt_array($opts);
curl_exec($ch);

Обратите внимание, что это предполагает, что Squid настроен для HTTP-аутентификации (а не сеансовой или NTLM-аутентификации).

Вы действительно не хотят делать это с помощью сокетов в PHP.

HTH

C.

0 голосов
/ 27 июня 2010

Оба встроенных потока и расширение cURL могут отправлять запросы через прокси-сервер. Использование любого из них было бы гораздо предпочтительнее, чем использование сокета напрямую.

Расширение cURL прямо упоминает прокси-аутентификацию, в то время как потоки прямо не упоминают ее, но принимают прокси как URI, так что вы можете использовать синтаксис proto://user:pass@host:port. Я не пробовал и точно не знаю, работает ли это.

...