我想创建一个可以验证抛出Squid代理的程序。 我在PHP语言中使用套接字
答案 0 :(得分:0)
内置streams和cURL 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
下进行。