authenticate throw squid proxy(PHP套接字)

时间:2010-06-26 22:29:58

标签: php sockets squid

我想创建一个可以验证抛出Squid代理的程序。 我在PHP语言中使用套接字

2 个答案:

答案 0 :(得分:0)

内置streamscURL extension都可以通过代理发出请求。使用任何一个都比直接使用套接字更受欢迎。

cURL扩展明确提到代理身份验证,而流没有明确提及它,但接受代理作为URI,因此您可以使用proto://user:pass@host:port语法。我没有尝试过,也不确定这是否有效。

答案 1 :(得分:0)

我认为您的意思是您希望通过需要身份验证的代理发出HTTP请求,而不是使用Squid中的身份验证方法来验证对您的Web服务器的请求。

您只需要为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

下进行。