【问题标题】:DNS Request over SOCKS5 using Python 3使用 Python 3 通过 SOCKS5 请求 DNS
【发布时间】:2018-07-09 15:52:51
【问题描述】:

我必须通过 SOCKS 5 代理使用 python 3 发出 DNS 请求。 (因此没有从我的 IP 地址发出 DNS 请求,socks5 代理会为我做这件事,并且如果它无法解决它,则应该使用相应的 A/AAA 记录或不响应/其他任何东西来响应) p>

我发现了以下 github 项目:

rthalley/dnspython:不支持代理/socks

Anorov/PySocks:没有 ipv6,无法接收远程 DNS 响应

我发现了以下 stackoverflow 线程Python - Using socket.gethostbyname through proxy -> 它使用 pysocks,它不支持 ipv6 -> 不适合我

你知道如何完成我的任务吗?

【问题讨论】:

  • 穷人解决方案:支持 Socks 的 ssh 端口重定向(请参阅-D 选项)
  • 另外,为什么特别是袜子?如今,您拥有基于 HTTPS 的 DNS 和基于 TLS 的 DNS,一些大型公共解析器也提供服务,因此这可能是更容易的选择。

标签: python proxy dns socks


【解决方案1】:

这非常容易。它的工作方式与 curl 相同:

如果您需要解析 DNS 客户端,请使用socks5://host:port 语法

如果您需要在代理端解析 DNS,请使用 socks5h://host:port 语法

【讨论】:

    【解决方案2】:

    在query.py的第45行

    # Function used to create a socket.  Can be overridden if needed in special
    # situations.
    socket_factory = socket.socket
    

    您可以重置 socket_factory 值(使用 PySocks)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-25
      • 2022-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多