1

Tor の制御には Stem を使用しています。tor がいつ IP を変更するかを知る必要があります。通常、信号NEWNYMが tor に送信されたときに発生しますが、他の理由が考えられます。

おそらく、最も簡単な方法は、現在の tor IP とユーザー エージェントを確認することです。しかし、Stem を使用して取得する方法がわかりません。

たぶん、NYMが変更されたときにtorが何らかのイベントを発生させますか? もしそうなら、どうすればこれを購読できますか?

お願い助けて!


私はこのコードを試してみましevent_handlerたが、いくつかの http リクエストが tor 経由で送信された後にのみ、数回実行されました。「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