使用Python 3通过SOCKS5进行DNS请求

时间:2018-07-09 15:52:52

标签: python proxy dns socks

我必须通过SOCKS 5代理使用python 3发出DNS请求。 (因此,没有从我的IP地址发出DNS请求,socks5代理为我完成了此请求,如果响应无法解决,则应该以相应的A / AAA记录响应,否则不响应)

我找到了以下github项目:

rthalley / dnspython :不支持代理/袜子

Anorov / PySocks :没有ipv6,没有接收远程DNS响应的可能性

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

query.py的lin 45

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

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