1

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()
Antonio
  • 822
  • 1
  • 10
  • 19

0 Answers0