I use Stem for controlling my tor. I need to know when tor changes it's IP. It usually happens when signal NEWNYM
is sended to tor, but there can be some other reasons.
Maybe, easiest way is to check current tor IP and user-agent. But I don't know how to retreive it using Stem.
Maybe, tor fires some event when NYM is changed? If so, how can I subscribe for this?
Help me, please!
I tried this code, event_handler
was executed several times and only after some http request was sended via tor. Is it possible to handle event like "NEWNYM received"?
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()