如何检测NYM已更改

时间:2015-03-23 19:07:59

标签: python tor stem

我用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()

0 个答案:

没有答案