PHP tor安装

时间:2015-09-24 14:38:59

标签: php proxy tor

我有这段代码:

<?php
$ip = '127.0.0.1';
$port = '9051';
$auth = 'PASSWORD';
$command = 'signal NEWNYM';

$fp = fsockopen($ip,$port,$error_number,$err_string,10);
if(!$fp) { echo "ERROR: $error_number : $err_string";
    return false;
} else {
    fwrite($fp,"AUTHENTICATE \"".$auth."\"\n");
    $received = fread($fp,512);
    fwrite($fp,$command."\n");
    $received = fread($fp,512);
}

fclose($fp);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://whatismyip.org");
curl_setopt($ch, CURLOPT_PROXY, "127.0.0.1:9050");
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
$response = curl_exec($ch);
?>

问题是它不起作用。我在windows上运行而不是linux。我下载了tor浏览器。我知道应该有一些配置,我设置了密码和端口。但是在安装过程中没有发生这种情况。

有没有人熟悉tor。我错过了什么?

2 个答案:

答案 0 :(得分:3)

默认情况下,Tor不会侦听控制端口,您还需要配置密码或使用CookieAuthentication指定密码。如果您要使用Tor编写脚本,则可能需要下载专家包而不是浏览器包。

这些值需要放在Tor torrc目录的Data文件中。请参阅default sample torrc

首先,生成一个哈希密码(注意在Windows上需要管道到more或者你不会看到任何输出):

C:\Path\To\Tor>tor.exe --hash-password PASSWORD|more

复制看起来像16:*BUNCH_OF_HEX_DIGITS*

的输出

接下来,您需要修改配置并使用ControlPort 9051添加或取消注释该行,并添加您的哈希密码。

ControlPort 9051
HashedControlPassword 16:YOUR_HASHED_PASSWORD_HERE

然后重启守护进程,确保它使用带有这些值的配置文件,并再次尝试使用您的代码。

请参阅ControlPort和HashedControlPassword设置上的docs

对于你正在做的事情可能有点过头了,但你可能也对我用来与Tor控制端口进行交互的PHP Tor library感兴趣。

使用我的库,您的代码将如下所示:

<?php

use Dapphp\TorUtils\ControlClient;
use Dapphp\TorUtils\ProtocolError;
$tc = new ControlClient();

try {
    $tc->connect(); // connect to 127.0.0.1:9051
    $tc->authenticate(); // uses cookie authentication, can also use $tc->authenticate('password_here');
} catch (\Exception $ex) {
    echo "Failed to create Tor control connection: " . $ex->getMessage() . "\n";
    exit;
}

try {
    echo "Sending NEWNYM signal to controller...";
    $tc->signal(ControlClient::SIGNAL_NEWNYM);
    echo "OK";
} catch (ProtocolError $pe) {
    echo $pe->getMessage();
}

$tc->quit(); // close control connection

答案 1 :(得分:0)

请注意C:\Path\To\Tor>tor.exe --hash-password PASSWORD|more,&#34; PASSWORD&#34;需要像你喜欢的密码一样被替换。 假设您使用&#34; my_password&#34;作为你的密码。 然后使用:C:\Path\To\Tor>tor.exe --hash-password my_password|more生成哈希密码 在您的代码中切换身份,请使用$ auth =&#39;&#34; my_password&#34;&#39 ;; 是的,带双引号