Nextrp [CPP] RU + Many GEOs Игра на карте России | NEXTRP

Как проверить, работает ли Tor в PHP?

php socks tor

1013 просмотра

2 ответа

1361 Репутация автора

Я использую Tor с PHP, на данный момент все работает правильно. Но, когда я пытаюсь запустить Tor с php, он иногда выдает ошибку, потому что Tor в данный момент работает, поэтому мне было интересно, есть ли какой-нибудь метод для проверки статуса Tor (работает или нет)

Я могу использовать только протокол SOCKS5 или Linux CLI; это мои единственные варианты.

Примечание : эта функция подключается к Tor (работает).

function init()
    {
        //Connect to Tor

        $socket = fsockopen($this->proxyIp, $this->proxyPort);      
        fwrite($socket, 'AUTHENTICATE' . PHP_EOL);

    }  
Автор: Abdulaziz Источник Размещён: 14.04.2013 05:28

Ответы (2)


2 плюса

25874 Репутация автора

В общем, демоны Unix / Linux обычно реализуют «уже запущенную» проверку с использованием файла блокировки (часто расположенного в /var/run). Вы можете использовать file_exists()для проверки наличия файла блокировки. Конечно, это нельзя использовать для определения того, произошел ли сбой процесса (и, таким образом, действительно ли процесс запущен в данный момент); проверка таблицы процесса может быть необходимой.

Что касается Tor, то быстрый поиск в Интернете, похоже, подсказывает, что вам не нужно этого делать. Tor находит сокет домена Unix в /var/run/tor/control(и прослушивает TCP-порт 9051, в зависимости от конфигурации), чтобы позволить другим программам управлять им. Попытка подключения к Tor через этот сокет (с использованием функций сокетов PHP и протокола управления Tor ) может работать.

Автор: PleaseStand Размещён: 14.04.2013 10:01

0 плюса

1361 Репутация автора

Решение

Я нашел решение этой проблемы, это в основном получение всех запущенных процессов и поиск «tor» среди них (на основе комментария Басса Джобсена ).

Вот код:

Примечание: этот код был протестирован только в Ubuntu, но он должен работать на большинстве ОС Linux.

function isRunning()
{
    //Get all running processes and search for "tor" within them
    //The "[" and "]" are used to execlude ps and grep from the returned result.
    $CLIResult = exec('ps aux | grep -w [t]or');

    //If no processes was found(= Tor is not running..)
    return empty($CLIResult);

}
Автор: Abdulaziz Размещён: 15.04.2013 12:03
32x32