在Python中使用客户端子网选项解析dns(EDN)
我正在寻找一个Python实现,它允许我使用DNS(EDNS)“客户端子选项”的扩展解析DNS地址。此选项允许为内容交付系统提供更好的DNS解析,并最终实现更快的internet路由。这里可以更好地解释动机: 另一个名称是“vandergaast edns客户端子网” 可在以下位置获得dig的实现:在Python中使用客户端子网选项解析dns(EDN),python,dns,Python,Dns,我正在寻找一个Python实现,它允许我使用DNS(EDNS)“客户端子选项”的扩展解析DNS地址。此选项允许为内容交付系统提供更好的DNS解析,并最终实现更快的internet路由。这里可以更好地解释动机: 另一个名称是“vandergaast edns客户端子网” 可在以下位置获得dig的实现: 我正在寻找一个与此相同的python实现。存在一个python实现: 它是dnspython()的一个扩展,可以在这里找到: pip安装dnspython git从github克隆repo 使用此
我正在寻找一个与此相同的python实现。存在一个python实现: 它是dnspython()的一个扩展,可以在这里找到:
我是dnspython clientsubnet的开发/维护人员。它被设计用于代码中作为dnspython的添加剂。我刚刚发布了2.0.0版(在尝试做你想做的事情之后),这使一切变得更加简单
pip安装clientsubnetoption
(适用于Python2和Python3)clientsubnetoption
和所需的依赖项:
import dns
import clientsubnetoption
ClientSubnetOption
:
cso = clientsubnetoption.ClientSubnetOption('1.2.3.4')
message = dns.message.make_query('google.com', 'A')
message.use_edns(options=[cso])
消息
进行查询:
r = dns.query.udp(message, '8.8.8.8')
r.options
,可以有多个选项,因此您可能需要遍历它们以找到ClientSubnetOption
对象
for options in r.options:
if isinstance(options, ClientSubnetOption):
# do stuff here
pass