一尘不染

使用Python连接到Tor上的.onion网站吗?

python

这是我到目前为止的代码

import socks
import socket
import requests
import json

socks.setdefaultproxy(proxy_type=socks.PROXY_TYPE_SOCKS5, addr="127.0.0.1", port=9050)
socket.socket = socks.socksocket

data = json.loads(requests.get("http://freegeoip.net/json/").text)

而且效果很好。问题是当我使用.onion网址时显示错误

无法建立新连接:[Errno -2]名称或服务未知

经过一番研究后,我发现尽管通过tor决议提出了http请求,但仍然在clearnet上出现。什么是正确的方法,这样我也可以通过网络解析域以连接到.onionurl?


阅读 413

收藏
2021-01-20

共1个答案

一尘不染

尽可能避免猴子打补丁。如果您使用的是现代版本的请求,那么您应该已经具有此功能。

import requests
import json

proxies = {
    'http': 'socks5h://127.0.0.1:9050',
    'https': 'socks5h://127.0.0.1:9050'
}

data = requests.get("http://altaddresswcxlld.onion",proxies=proxies).text

print(data)

使用该socks5h://方案指定代理很重要,以便可以通过SOCKS处理DNS解析,以便Tor可以.onion正确解析地址。

2021-01-20