与dnspython兼容的dnscrypt解析器
dnscrypt的Python项目详细描述
这个库旨在使在python中使用dnscrypt变得简单和兼容 用dnspython。它提供了一个dns.resolver.Resolver风格的接口 混合使用dns.query.udp和dns.query.tcp函数。
>>> import dnscrypt >>> r = dnscrypt.Resolver('208.67.222.222', '2.dnscrypt-cert.opendns.com', ... 'B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79', ... port=53, timeout=5) >>> print r.query('www.google.com') <dns.resolver.Answer object at 0x103b6f450> >>> import dns.message >>> r.udp(dns.message.make_query('google.com', 'A')) <DNS message, ID 16075>
类方法
__init__(self, address, provider_name, provider_pk, private_key=None, port=53, timeout=5)
- 地址
- dnscrypt解析器的IP地址
- 端口
- 用于与dnscrypt解析器通信的端口
- 提供商名称
- dnscrypt解析器的提供程序名称。采用<version>.dnscrypt-cert.<zone>格式。
- 提供商pk
- 提供程序的十六进制编码公钥或dns主机名,从中检索公钥
- 私钥
- 一个十六进制编码的私钥,如果你想重用你已经拥有的密钥。否则, 将为每个解析器实例生成一个新密钥。
- 超时
- DNS查找超时(秒)
address、provider_name和provider_pk是必需的。所有其他 参数是可选的。
query(qname, rdtype=1, rdclass=1, tcp=False, source=None, raise_on_no_answer=True, source_port=0)
tcp(self, query, timeout=None, af=None, source=None, source_port=0, one_rr_per_rrset=False)
类似于dns.query.tcp表示dnspython。没有where参数, 但在功能/形式上完全相同。
udp(self, query, timeout=None, af=None, source=None, source_port=0, ignore_unexpected=False, one_rr_per_rrset=False)
类似于dnspython的dns.query.udp。没有where参数, 但在功能/形式上完全相同。
与dnspython的区别
最重要的是这是一个非常基本的 dns.resolver.Resolver。虽然它的设计看起来/感觉是一样的,但它不是 替代品。(例如,我没有实施 use_tsig/use_edns/set_flags函数,而是使用 dns.message.Message和dnscrypt.resolver.tcp或 dnscrypt.resolver.udp。