Я хотел бы создать программу, которая могла бы аутентифицировать прокси-сервер Squid. Я использую socket в PHP langageаутентифицировать прокси-сервер squid squid (PHP-сокет)
ответ
Оба встроенных streams и cURL extension имеют возможность делать запросы через прокси. Использование либо было бы предпочтительнее использовать сокет напрямую.
Расширение cURL прямо упоминает аутентификацию прокси-сервера, в то время как потоки явно не упоминают об этом, но допускают прокси-сервер в качестве URI, поэтому вы можете использовать синтаксис proto://user:[email protected]: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.
да, я хотел бы использовать непосредственно сокеты в моей программе Intead вызова свертывания расширения. Я не знаю, что получить, и что отправить для аутентификации бросить прокси ... – user377158
Вы действительно не хотите использовать сокеты, когда кто-то уже сделал всю тяжелую работу для вас при создании библиотеки. – Charles