Daniel Wallace <daniel.wallac...@gmail.com> added the comment:

I think this is caused by the fact that socks5 proxies are not supported?

$ cat ~/issue34038.py
from urllib.request import urlopen, HTTPError

url = 'http://icanhazip.com'
u = urlopen(url)

$./python.exe ~/issue34038.py
Traceback (most recent call last):
  File "/Users/dwallace/issue34038.py", line 4, in <module>
    u = urlopen(url)
  File "/Users/dwallace/workspace/cpython/Lib/urllib/request.py", line 222, in 
urlopen
    return opener.open(url, data, timeout)
  File "/Users/dwallace/workspace/cpython/Lib/urllib/request.py", line 524, in 
open
    response = self._open(req, data)
  File "/Users/dwallace/workspace/cpython/Lib/urllib/request.py", line 541, in 
_open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File "/Users/dwallace/workspace/cpython/Lib/urllib/request.py", line 502, in 
_call_chain
    result = func(*args)
  File "/Users/dwallace/workspace/cpython/Lib/urllib/request.py", line 804, in 
<lambda>
    meth(r, proxy, type))
  File "/Users/dwallace/workspace/cpython/Lib/urllib/request.py", line 832, in 
proxy_open
    return self.parent.open(req, timeout=req.timeout)
  File "/Users/dwallace/workspace/cpython/Lib/urllib/request.py", line 524, in 
open
    response = self._open(req, data)
  File "/Users/dwallace/workspace/cpython/Lib/urllib/request.py", line 546, in 
_open
    return self._call_chain(self.handle_open, 'unknown',
  File "/Users/dwallace/workspace/cpython/Lib/urllib/request.py", line 502, in 
_call_chain
    result = func(*args)
  File "/Users/dwallace/workspace/cpython/Lib/urllib/request.py", line 1386, in 
unknown_open
    raise URLError('unknown url type: %s' % type)
urllib.error.URLError: <urlopen error unknown url type: socks5>

Though the error message could be better.

You can work around this by setting the default socket.

import urllib.request
import socket
import socks

url = 'http://icanhazip.com'
socks.set_default_proxy(socks.SOCKS5, "localhost",port=8888)
socket.socket = socks.socksocket
print(urllib.request.urlopen(url).read())

----------
nosy: +Daniel Wallace

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue34038>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to