Посылка сигнала на ствол закрывает сокет - PullRequest
0 голосов
/ 02 июня 2018

Этот код:

from stem import Signal
from stem.control import Controller

with Controller.from_port(port=9051) as controller:
    print('is alive BEFORE ? ')
    print(controller.is_alive())
    try:
        controller.signal(Signal.HEARTBEAT)
    except Exception as e:
        print(e)
    print('is alive AFTER ? ')
    print(controller.is_alive())

with Controller.from_port(port=9051) as controller:
    print('is alive 2 ? ')
    print(controller.is_alive())

производит этот вывод:

is alive BEFORE ?
True
SIGNAL response contained unrecognized status code: 514
is alive AFTER ?
False
is alive 2 ?
True

, и сердцебиение не регистрируется.Также, если я пытаюсь сделать запрос к tor после отправки сигнала, я получаю: [stem] INFO: Ошибка при получении управляющего сообщения (SocketClosed): пустое содержимое сокета

Конфигурация Tor: SocksPort 9050 ControlPort 9051

1 Ответ

0 голосов
/ 04 июня 2018

Ошибка 514 означает Authentication required.

После подключения первое, что вы должны сделать, это выполнить аутентификацию:

with Controller.from_port(port=9051) as controller:
    print('is alive BEFORE ? ')
    print(controller.is_alive())
    controller.authenticate()
    ...

Также обратите внимание, что Tor закрывает соединениеafer аутентификация не удалась. См. Спецификация управления раздел 3.5 для получения дополнительной информации.

Первый пример основы более подробно описывает эти основы: https://stem.torproject.org/tutorials/the_little_relay_that_could.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...