【发布时间】:2010-06-26 22:29:58
【问题描述】:
我想创建一个可以验证 throw Squid 代理的程序。 我在 PHP 语言中使用套接字
【问题讨论】:
我想创建一个可以验证 throw Squid 代理的程序。 我在 PHP 语言中使用套接字
【问题讨论】:
内置的streams 和cURL extension 都可以通过代理发出请求。使用任何一个都比直接使用套接字要好得多。
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);
请注意,这假定 squid 配置为进行 HTTP 身份验证(而不是基于会话或 NTLM 的身份验证)。
您真的不想在 PHP 中使用套接字来执行此操作。
HTH
C.
【讨论】: