我用Stem控制我的tor。我需要知道什么时候改变它的IP。它通常发生在信号NEWNYM
发送到tor时,但可能还有其他一些原因。
也许,最简单的方法是检查当前的tor IP和用户代理。但我不知道如何使用Stem进行检索。
也许,当NYM改变时,tor会发生一些事件?如果是这样,我该如何订阅?
请帮帮我!
我尝试了这段代码,event_handler
被执行了几次,只有在通过tor发出一些http请求之后。是否可以处理“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()