proxy — установка для PHP

У меня есть этот код:

<?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. Что мне не хватает?

0

Решение

По умолчанию Tor не прослушивает порт управления, и вам также нужно будет настроить пароль или указать его, используя CookieAuthentication. Если вы собираетесь создавать сценарии с Tor, вы можете загрузить пакет экспертов вместо пакета браузера.

Эти значения должны идти в torrc файл в Tor Data каталог. Увидеть образец по умолчанию torrc.

Сначала создайте хешированный пароль (обратите внимание на more необходимо в Windows, иначе вы не увидите ничего):

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.

Возможно, излишнее за то, что вы делаете, но вы также можете быть заинтересованы в этом PHP Tor библиотека Я сделал, что вы можете использовать для взаимодействия с портом управления 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
3

Другие решения

Обратите внимание, что в C:\Path\To\Tor>tor.exe --hash-password PASSWORD|more, «ПАРОЛЬ» необходимо заменить на пароль, который вам нравится.
Предположим, вы используете «my_password» в качестве пароля.
Тогда используйте: C:\Path\To\Tor>tor.exe --hash-password my_password|more генерировать хешированный пароль
В вашем коде для переключения идентичности используйте $ auth = ‘»my_password»‘;
Да, с двойными кавычками

0

По вопросам рекламы [email protected]