你有任何代码吗?您需要使用这样的代码,特别是利用CURLOPT_HTTPAUTH 和CURLOPT_USERPWD。
$username = 'studentid';
$password = 'studentpassword';
$ch = curl_init("http://student.guc.edu.eg/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
$html = curl_exec($ch);
curl_close($ch);
CURLOPT_HTTPAUTH
要使用的 HTTP 身份验证方法。选项包括:CURLAUTH_BASIC、CURLAUTH_DIGEST、CURLAUTH_GSSNEGOTIATE、CURLAUTH_NTLM、CURLAUTH_ANY 和 CURLAUTH_ANYSAFE。
按位 | (or) 运算符可用于组合多个方法。如果这样做了,cURL 将轮询服务器以查看它支持的方法并选择最好的方法。
CURLAUTH_ANY 是 CURLAUTH_BASIC | 的别名。 CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM。
CURLAUTH_ANYSAFE 是 CURLAUTH_DIGEST | 的别名。 CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM。
CURLOPT_USERPWD
用于连接的用户名和密码,格式为“[username]:[password]”。
查看站点http://student.guc.edu.eg/返回的headers如下:
> curl -I http://student.guc.edu.eg/
HTTP/1.1 401 Access Denied
Server: Microsoft-IIS/5.0
Date: Thu, 21 Jul 2011 08:18:34 GMT
WWW-Authenticate: NTLM
WWW-Authenticate: Basic realm="student.guc.edu.eg"
Connection: close
Content-Length: 4431
Content-Type: text/html
这意味着您应该尝试CURLAUTH_NTLM,而不是使用CURLAUTH_BASIC,看看是否有帮助。