def _negotiate_socks(self, addr, proxy_addr):
parsed = urlparse(proxy_addr[0])
if parsed.scheme == 'socks5':
socks_version, rdns = 2, False
elif parsed.scheme == 'socks5h':
socks_version, rdns = 2, True
elif parsed.scheme == 'socks4':
socks_version, rdns = 1, False
elif parsed.scheme == 'socks4a':
socks_version, rdns = 1, True
else:
raise ValueError(
'Unable to determine SOCKS version from %s' % addr[0])
username, password = get_auth_from_url(addr[0])
stream = SockIOStream((
socks_version, rdns, parsed.hostname, proxy_addr[1], username, password))
return stream.connect(*addr)
评论列表
文章目录