【发布时间】:2009-09-06 19:26:50
【问题描述】:
我正在完成我的脚本,突然 libcurl 停止工作。我以为我正在连接的服务器已关闭或其他原因,但总是在我尝试连接的地方遇到同样糟糕的错误。我什至尝试重新启动我的盒子,结果相同。事情发生的代码sn-p是:
public function navigate(array $data)
{
$ch = curl_init();
// Setup cURL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_INTERFACE, $data['ip']);
curl_setopt($ch, CURLOPT_COOKIEFILE, "/tmp/cookies.jar");
curl_setopt($ch, CURLOPT_COOKIEJAR, "/tmp/cookies.jar");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $data['agent']);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// Visit homepage
curl_setopt($ch, CURLOPT_URL, "SOMEWEBSITEHERE, MAKES NO DIFFERENCE");
$page= curl_exec($ch);
var_dump($page, curl_error($ch), curl_errno($ch));
}
上面的 var_dump() 将产生这个输出(以 www.yahoo.com 作为 URL):
bool(false)
string(51) "Failed to connect to 69.147.76.15: Unknown error 22"
int(7)
Login failed!
我什至尝试用wireshark嗅探连接,cURL甚至没有发出连接请求;只是一个 DNS 请求。
我现在一无所知。
我真的很感激这个。
谢谢。
【问题讨论】:
-
代码对我有用(页面返回,没有错误),CULOPT_INTERFACE 设置为本地机器的局域网 IP。你检查过 CURLOPT_VERBOSE 的输出和 curl_getinfo() 的返回吗? (我假设“登录失败”来自帖子中没有的代码?)