cURL和外部Tor继电器

时间:2011-09-30 11:54:34

标签: php curl tor

我正在创建一个工具,我希望使用Tor网络。

我熟悉PHP和它的cURL扩展,但我似乎无法使用Tor作为代理。我一直没有收到服务器的回复。

$this->ch = curl_init();

curl_setopt($this->ch, CURLOPT_CONNECTTIMEOUT, 1);
curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($this->ch, CURLOPT_PROXY, $proxy_ip);
curl_setopt($this->ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt($this->ch, CURLOPT_NOSIGNAL, true);
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($this->ch, CURLOPT_TIMEOUT, 1);

curl_setopt($this->ch, CURLOPT_URL, $url);
curl_setopt($this->ch, CURLOPT_USERAGENT, $this->useragents[array_rand($this->useragents, 1)]);

$result = curl_exec($this->ch);
$httpcode = curl_getinfo($this->ch, CURLINFO_HTTP_CODE);

if($httpcode >= 200 && $httpcode < 300) {
    return $result;
}

return $httpcode; // Always returns 0

我很无能解决问题所在。我的cURL设置不正确吗?

每个外部接力都不适用于我,但我的本地继电器确实有效。


操作系统:OSX,但也在Windows上测试

PHP:5.3.5

cURL:7.21.3

1 个答案:

答案 0 :(得分:1)

Tor通常非常慢,需要的时间超过一秒才能获得响应,因此首先尝试将CURLOPT_TIMEOUT更改为30左右,看看是否有帮助,如果不是,我们将进一步挖掘:)

P.S。同时将CURLOPT_CONNECTTIMEOUT设置为0(无限期)