22544


通常サイトの場合はこのコードで接続できるんですが、.onionにアクセスしようとすると失敗します。

環境：

[code]

    windows 10
    python 2.7
    
[/code]

コード：

[code]

    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://[url].onion').read()
    
[/code]

エラー：

[code]

    Traceback (most recent call last):
      File "test.py", line 17, in <module>
        print urllib2.urlopen('http://[url].onion').read()
      File "C:\Python27\lib\urllib2.py", line 154, in urlopen
        return opener.open(url, data, timeout)
      File "C:\Python27\lib\urllib2.py", line 431, in open
        response = self._open(req, data)
      File "C:\Python27\lib\urllib2.py", line 449, in _open
        '_open', req)
      File "C:\Python27\lib\urllib2.py", line 409, in _call_chain
        result = func(*args)
      File "C:\Python27\lib\urllib2.py", line 1227, in http_open
        return self.do_open(httplib.HTTPConnection, req)
      File "C:\Python27\lib\urllib2.py", line 1197, in do_open
        raise URLError(err)
    urllib2.URLError: <urlopen error [Errno 11001] getaddrinfo failed>
    
[/code]

どうすれば接続できるようになると思いますか？


CC BY-SA 3.0
2016-02-24T07:50:21.563
22477
2016-02-25T21:43:50.973
13313
question
python
Python2.7からSocks5でTorを利用してTorサイトにアクセスする方法


`.onion` は Tor 上の特殊ドメインなので、DNS リクエストが ToR 越しではなく、通常使用の DNS
サーバーに行ったがためにエラーになっているように見受けられます。

<https://stackoverflow.com/questions/13184205/dns-over-proxy>
にあるように、`getaddrinfo` にも Socks5 を使うようにすれば解決すると思います。


CC BY-SA 3.0
2016-02-25T21:43:50.973
22544
2016-02-25T21:43:50.973
2017-05-23T12:38:56.467
-1
2521
22477
answer