die Nutzung von tor als SOCKS5-proxy mit python urllib2 oder mechanisieren
Mein Ziel ist es, mit python-mechanize mit einem tor-SOCKS-proxy.
Ich bin nicht mit einem GUI mit den folgenden Ubuntu-version:
Beschreibung: Ubuntu 12.04.1 LTS
Release: 12.04
Codename: precise
Ist Tor installiert und lauscht auf port 9050 laut nmap-scan:
Starting Nmap 5.21 ( http://nmap.org ) at 2013-01-22 00:50 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000011s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
3306/tcp open mysql
9050/tcp open tor-socks
Außerdem dachte ich, dass es sinnvoll zu sehen, wenn ich könnte ein telnet auf port 9050, die ich kann:
telnet 127.0.0.1 9050
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
quit
Connection closed by foreign host.
Ich hatte große Hoffnungen für die Anregung in diesem Beitrag um tor arbeiten mit urllib2:
Wie kann ich einen SOCKS 4/5-proxy mit urllib2?
So, ich habe versucht, das folgende Skript im python:
import socks
import socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
socket.socket = socks.socksocket
import urllib2
print urllib2.urlopen('http://icanhazip.com').read()
Das Skript hängt nur mit keine Antwort.
Dachte ich, dass da mechanisieren scheint verwandt zu sein urllib2, dass das folgende Skript funktionieren könnte:
import socks
import socket
import mechanize
from mechanize import Browser
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
socket.socket = socks.socksocket
br = Browser()
print br.open('http://icanhazip.com').read()
Bekomme ich das gleiche Ergebnis wie oben, nur mit der urllib2 Skript.
Ich bin sehr neu in python und Vernetzung, also brauche ich eine zweite Meinung auf, wie man den python-urllib2 der Nutzung von tor als SOCKS-auf eine non-GUI-server von Ubuntu.
Lief ich dieses Skript und erhielt die erwartete Reaktion. Ich habe nicht mit den tor-proxy:
In [1]: import urllib2
In [2]: print urllib2.urlopen('http://icanhazip.com').read()
xxxx:xxxx:xxxx:512:13b2:ccd5:ff04:c5f4
Dank.
Habe ich etwas gefunden, das funktioniert! Ich habe keine Ahnung, warum es funktioniert, aber es funktioniert. Ich habe es hier gefunden:
Python-das urllib über TOR?
import socks
import socket
def create_connection(address, timeout=None, source_address=None):
sock = socks.socksocket()
sock.connect(address)
return sock
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
# patch the socket module
socket.socket = socks.socksocket
socket.create_connection = create_connection
import urllib2
print urllib2.urlopen('http://icanhazip.com').read()
import mechanize
from mechanize import Browser
br = Browser()
print br.open('http://icanhazip.com').read()
Meine zweite Methode funktioniert. Die erste Methode immer noch hängt. Also habe ich nur die zweite Methode verwenden.
InformationsquelleAutor DMfll | 2013-01-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Siehe Ende der Frage.
Ich wollte testen, ob die mechanize-browser war die Nutzung von Tor.
Was-Modul "import-Socken" finden?
die Socken Modul ist enthalten in sockipy: sourceforge.net/projects/socksipy
InformationsquelleAutor DMfll
Die oben genannte Lösung hat bei mir nicht funktioniert. Ich bin auf Ubuntu 14.04. Immer wenn ich versuche, führen Sie das Skript aus, es hält werfen die folgende Fehlermeldung.
Geprüft, ob tor läuft durch die mit dem nmap-Befehl.
Installieren Vidalia dieses problem gelöst. Offenbar, und der socks-proxy war nicht erlaubt, die Verbindung zu passieren. Hoffe, dies kann helfen, jemand vor dem gleichen problem.
InformationsquelleAutor sid1408