PHP 安装
PHP tor installation
我有这个代码:
<?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.我错过了什么?
默认情况下,Tor 不监听控制端口,您还需要配置密码或使用 CookieAuthentication 指定密码。如果您要使用 Tor 编写脚本,您可能需要下载专家包而不是浏览器包。
这些值需要放在 Tor Data
目录的 torrc
文件中。见 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
然后重新启动守护程序,确保它正在使用具有这些值的配置文件,然后再次尝试您的代码。
请参阅 docs ControlPort 和 HashedControlPassword 设置。
对于你正在做的事情来说可能有点矫枉过正,但你可能也对我制作的这个 PHP Tor library 感兴趣,你可以用它来与 Tor 控制端口交互。
使用我的库,您的代码将如下所示:
<?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
注意在C:\Path\To\Tor>tor.exe --hash-password PASSWORD|more
中,"PASSWORD"需要像你喜欢的密码一样进行替换。
假设您使用 "my_password" 作为密码。
然后使用:C:\Path\To\Tor>tor.exe --hash-password my_password|more
生成散列密码
在您切换身份的代码中,使用 $auth = '"my_password"';
是的,用双引号
我有这个代码:
<?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.我错过了什么?
默认情况下,Tor 不监听控制端口,您还需要配置密码或使用 CookieAuthentication 指定密码。如果您要使用 Tor 编写脚本,您可能需要下载专家包而不是浏览器包。
这些值需要放在 Tor Data
目录的 torrc
文件中。见 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
然后重新启动守护程序,确保它正在使用具有这些值的配置文件,然后再次尝试您的代码。
请参阅 docs ControlPort 和 HashedControlPassword 设置。
对于你正在做的事情来说可能有点矫枉过正,但你可能也对我制作的这个 PHP Tor library 感兴趣,你可以用它来与 Tor 控制端口交互。
使用我的库,您的代码将如下所示:
<?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
注意在C:\Path\To\Tor>tor.exe --hash-password PASSWORD|more
中,"PASSWORD"需要像你喜欢的密码一样进行替换。
假设您使用 "my_password" 作为密码。
然后使用:C:\Path\To\Tor>tor.exe --hash-password my_password|more
生成散列密码
在您切换身份的代码中,使用 $auth = '"my_password"';
是的,用双引号