假设这个工作代码:
import win_inet_pton
import socks
import socket
s = socks.socksocket()
s.set_proxy(socks.SOCKS5, "localhost", 9050)
s.connect(("xmh57jrzrnw6insl.onion",80))
s.send("GET / HTTP/1.1\r\n\r\n")
print 'sended'
data=s.recv(1024)
print data
Tor服务确实在端口9050上运行。
在正常情况下,python将通过SOCKS5代理执行DNS解析,SOCKS5代理连接到Tor中继。但是,Tor不处理UDP数据包(它直接从TCP数据包中的主机名处理分辨率),因此DNS解析将失败。
这段代码怎么可能有效呢? (java for exemple中的等效代码将失败,因为无法进行DNS解析)。
答案 0 :(得分:-1)
此链接中说明了IT:Python requests fails when tryign to connect to .onion site
您只需使用socks5h
而不是socks5