我使用 Stem 来控制我的 tor。我需要知道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()