我有一些代码将curl请求发送到网站,但目前只有一个网站,我不希望他们错误地禁止我的服务器IP。无论如何我可以通过tor网络发送这些cURL请求吗?
我需要使用哪种软件?
运行CentOS 6.5
public function checkLogin2($email, $password, $cookiefile){
$cookiefile = 'cookies/'.$cookiefile;
$handle = fopen($cookiefile, 'w+');
#$proxy = 'proxy-nl.privateinternetaccess.com:1080';
#$us = 'x9597458:Th3hXjVyuD';
$this->_curl->setCookieFile($cookiefile);
#$this->_curl->addOption(CURLOPT_PROXY, $proxy);
#$this->_curl->addOption(CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
#$this->_curl->addOption(CURLOPT_PROXYUSERPWD, $us);
$this->_curl->setUserAgent('FreshAndroidApp-1.3.1');
$this->_curl->addHeader('Content-Type', 'application/x-www-form-urlencoded');
$this->_curl->addHeader('Cookie', 'JSESSIONID=' . strtoupper(md5(time())));
$this->_curl->addHeader('Cookie2', '$Version=1');
try {
$HTML = $this->_curl->post("URL HERE",
array('password' => $password,
'emailAddress' => $email
));
if(!self::isJson($HTML)){
return '{"status":"uncheck", "msg":"<font color="red"><b>Uncheck</b></font> => ' .$email.'|'.$password.'"}';
}
$resp = json_decode($HTML);
if($resp->{'status'} == "success"){
$details = $this->_curl->get('URL HERE');
return $details;
} else if ($resp->{'status'} == "failure"){
return '{"status":"failure"}';
}
fclose($handle);
} catch (CurlWrapperException $e){
return '{"status":"socksfailure", "msg":"'.$proxy. ' => Die or timeout"}';
}
fclose($handle);
}
答案 0 :(得分:7)
您需要安装并运行TOR,如以下链接中所述:https://www.torproject.org/docs/rpms.html.en
然后,如果您的代码是正确的(我对PHP知之甚少),请执行:
$this->_curl->addOption(CURLOPT_PROXY, 127.0.0.1:9050);
$this->_curl->addOption(CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
因为TOR代理默认在端口9050上运行。 如果在另一台机器上运行TOR,也可以放置另一个IP而不是127.0.0.1。
我认为这应该有用