【问题标题】:Using Requests Over Tor Returns a getaddrinfo failed在 Tor 上使用请求返回 getaddrinfo 失败
【发布时间】:2021-01-17 04:39:39
【问题描述】:

解决问题:我正在构建一个跨 Mastodon 和 Secure Scuttlebutt 协议的社交网络。 Scuttlebutt 数据过于密集,不允许在线交流。 Mastodon 过于集中。

我的网络为每个用户分配一个洋葱地址(计划稍后编写我自己的基础,因为 50 多个字符的地址是极端的)。我目前在 Windows 上获得了 TOR 专家包。

我当前的代码是:

import requests

session = requests.session()
session.proxies = {"http":"socks5://localhost:9050", "https":"socks5://localhost:9050"}

当我尝试时:

session.get("https://google.com").text

它返回 Google 的代码。

当我请求 ident.me 时,它​​会返回一个 TOR IP 地址。但是,当我请求 https://facebookcorewwwi.onion 时,我得到:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\mary\AppData\Local\Programs\Python\Python38-32\lib\site-packages\requests\sessions.py", line 543, in get
    return self.request('GET', url, **kwargs)
  File "C:\Users\mary\AppData\Local\Programs\Python\Python38-32\lib\site-packages\requests\sessions.py", line 530, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\mary\AppData\Local\Programs\Python\Python38-32\lib\site-packages\requests\sessions.py", line 643, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\mary\AppData\Local\Programs\Python\Python38-32\lib\site-packages\requests\adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: SOCKSHTTPSConnectionPool(host='facebookcorewwwi.onion', port=443): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.contrib.socks.SOCKSHTTPSConnection object at 0x035E1148>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

我尝试设置超时,但这似乎也不起作用。每次我用 Google 搜索这个问题时,答案都会将我带到一个已有 3 年历史的博客,其中包含我已经尝试过的东西。

编辑: 在开始之前,我:

pip install requests[socks]
pip install requests[security]

我正在运行 Python 3.8。

【问题讨论】:

    标签: python python-requests tor getaddrinfo


    【解决方案1】:

    您遇到了 DNS 泄漏!

    session.proxies 应该是:

    {"http":"socks5h://localhost:9050", "https":"socks5h://localhost:9050"}
    

    根据requests documentation

    【讨论】:

      猜你喜欢
      • 2021-05-30
      • 2019-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-02
      • 2015-07-28
      • 2021-05-27
      相关资源
      最近更新 更多