1

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

0 回答 0