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()
Wenn Sie haben Ihr Problem gelöst, Sie können Ihre eigene Frage zu beantworten, so dass andere Leute nicht kommen und versuchen, Sie zu beantworten! Das heißt, ich habe versucht, alle Ihre code und es funktionierte einwandfrei (auch die snippets, die Sie sagte, waren gebrochen). Vielleicht waren Sie nur mit Netzwerk-Probleme?
Meine zweite Methode funktioniert. Die erste Methode immer noch hängt. Also habe ich nur die zweite Methode verwenden.

InformationsquelleAutor DMfll | 2013-01-22

Schreibe einen Kommentar