Как обнаружить, что NYM изменен

Я использую Stem для управления своим тором. Мне нужно знать, когда Tor меняет свой IP. Обычно это происходит, когда сигнал NEWNYM отправлено tor, но могут быть и другие причины.

Возможно, самый простой способ - проверить текущий IP-адрес и пользовательский агент. Но я не знаю, как получить его с помощью Stem.

Может быть, Tor запускает какое-то событие, когда меняют NYM? Если так, как я могу подписаться на это?

Помоги мне, пожалуйста!


Я попробовал этот код, event_handler был выполнен несколько раз и только после того, как какой-то http-запрос был отправлен через tor. Можно ли обработать событие как "Получено NEWNYM"?

def event_handler(event):
    print "HANDLED!!"
    print event

from stem.control import Controller
from stem import Signal
from stem.control import EventType

controller = Controller.from_port()
controller.authenticate(password=settings.TOR_PASSWORD)

controller.add_event_listener(event_handler, EventType.CIRC)

controller.signal('NEWNYM')

# if I comment this, event_handler will not be executed
import requests
r = requests.get("http://httpbin.org/ip", proxies=settings.TOR_PROXIES)
print r.json()

0 ответов

Другие вопросы по тегам