Kontrolliere den Client mit Ruby

8

Ich schreibe ein Ruby-Skript, das automatisch Websites für die Datenanalyse crawlt, und jetzt habe ich eine Anforderung, die ziemlich kompliziert ist: Ich muss in der Lage sein, den Zugang aus einer Vielzahl von Ländern, etwa 20 verschiedenen, zu simulieren. Die Website wird abhängig vom IP-Standort unterschiedliche Informationen enthalten. Die einzige Möglichkeit besteht darin, sie von einem Server anzufordern, der sich tatsächlich in diesem Land befindet.

Da ich keine Server in jedem dieser 20 Länder kaufen möchte, habe ich versucht, Tor auszuprobieren. Wie viele von Ihnen wissen, ist es durch Bearbeiten der torrc-Konfigurationsdatei möglich, den Exit-Knoten und somit anzugeben das Land, von dem die tatsächliche Anfrage stammt.

Wenn ich das manuell mache, z.B. Indem Sie die torrc-Datei bearbeiten, um einen argentinischen Server zu verwenden, dann Tor mit Vidalia trennen, Vidalia erneut verbinden und dann die Anfrage erneut ausführen, funktioniert es einwandfrei. Ich möchte diesen Prozess jedoch vollständig automatisieren und so effizient wie möglich durchführen. Tor ist in C geschrieben, und ich möchte es vermeiden, den gesamten Quellcode dafür zu zerlegen. Irgendeine Idee von, was ist der einfachste Weg, den ganzen Prozess zu automatisieren, der nur Ruby benutzt?

Wenn ich etwas verpasse und es eine einfachere Alternative zu dieser ganzen Tortur gibt, lass es mich wissen.

Danke!

    
M. Cypher 09.06.2011, 18:24
quelle

1 Antwort

12

Bitte sehen Sie sich das Tor-Kontrollprotokoll an. Sie können Schaltungen mit Telnet steuern. Ссылка

Um zu einer neuen Schaltung zu wechseln, die zu einem neuen Endpunkt wechselt:

%Vor%

Achten Sie auf die Verzögerung beim Erstellen einer neuen Verbindung. Dies kann einige Sekunden dauern. Sie sollten daher eine Verzögerung im Code hinzufügen oder überprüfen, ob sich Ihre Adresse geändert hat, indem Sie eine Remote-IP-Erkennungssite aufrufen.

    
phil pirozhkov 30.07.2011, 11:10
quelle

Tags und Links