Как обнаружить, что 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()