Ich verwende die stem
, um einen Tor-Knoten zu steuern, der mit stem.process.launch_tor_with_config
erstellt wurde. Ich habe auch eine erstellt, die auf dem oben genannten Prozesssteueranschluss arbeitet.Wie kann ich den Endpunkt meines Torprozesses im Stamm ändern?
Wie kann ich den Ausgangsknoten ändern? Ich schaute auf stem.controller.Controller.new_circuit
, aber dies scheint die intermediate Knoten zu ändern, den Endpunkt zu erhalten.
Weiß jemand, wie das gemacht werden könnte?
Danke!
Edit:
Also ich denke, ich grundlegendes Missverständnis etwas sein kann, aber ich kann meinen Kopf nicht scheinen, um es zu wickeln. Ich habe versucht, Controller.get_circuits()
zu nennen und eine Liste von CircuitEvent
Objekten gefunden. Bedeutet dies, dass ein einzelner Prozess mehrere Schaltkreise verarbeiten kann? Wenn ja, wie wähle ich einen zur Verwendung aus?
Beachten Sie, dass ich HTTP-Anfragen über Privoxy anleite, die sie wiederum an den SOCKS-Port des Tor-Prozesses weiterleitet.
Edit 2:
fand ich etwas, das funktioniert, aber ich weiß nicht, wie es funktioniert, was mir Sorgen macht. Ich werde vergeben gerne eine Antwort auf alle, die entweder:
- Erklären Sie, warum mein Ansatz funktioniert
- zeigen ein besserer Ansatz sein und erklären, wie das funktioniert
Hier ist, was ich getan habe:
for circuit in controller.get_circuits():
controller.close_circuit(circuit.id)
Da ist es. Die externe IP geändert, also weiß ich, dass ich etwas getan habe aber Hölle, wenn ich genau was weiß.
Zunächst einmal, vielen Dank für Ihre Antwort. Zweitens, bitte versichere mir, dass ich das TOR-Netzwerk nicht missbrauche. Mein Goas * ist in der Tat, etwas Kontrolle über den Endpunkt IP zu haben, aber ich mache das für (was ich denke) ist ein guter Grund. Ich versuche, einen Pool von TOR-Prozessen mit verschiedenen IPs auszuführen, um einige Eigenschaften des TOR-Netzwerks zu untersuchen. Mit anderen Worten, ich hacke (im konstruktiven Sinne). Ich hoffe, das ist in Ordnung! Gibt es eine Möglichkeit, eine garantierte Änderung der Endpunkt-IP vorzunehmen? – blz
Freut mich zu hören! Wenn Sie einfach nach einem Pool von verschiedenen Exit-Relays suchen, dann ist die einfachste Option wahrscheinlich, den Satz zu finden, den Sie im Atlas verwenden möchten (http://atlas.torproject.org/), und dann create_circuit() aufzurufen eine Schaltung durch jeden von ihnen. Das Unangenehme ist, dass Sie Streams manuell an Schaltungen anfügen müssen, um zu bestimmen, welcher Stream welche IP bekommt. Siehe hierzu attach_stream() (https://stem.torproject.org/api/control.html#stem.control.Controller.attach_stream). – Damian
großartig! Ich werde das untersuchen. Danke nochmal für deine Hilfe! – blz