Я хотел бы создать программу, которая могла бы аутентифицировать прокси-сервер Squid. Я использую сокет в PHP langage
Как встроенные потоки, так и расширение cURL имеют возможность делать запросы через прокси. Использование либо было бы предпочтительнее использовать сокет напрямую.
Расширение cURL прямо упоминает прокси-аутентификацию, в то время как потоки явно не упоминают об этом, но принимает прокси как URI, поэтому вы могли бы использовать синтаксис proto://user:pass@host:port
. Я не пробовал и не знаю точно, если это сработает.
Я предполагаю, что вы имеете в виду, что хотите сделать 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);
Обратите внимание, что это предполагает, что кальмар настроен для проверки подлинности HTTP (а не для проверки подлинности на основе сеанса или NTLM).
Вы действительно не хотите делать это с помощью сокетов в PHP.
НТН
C.