使用dnspython解析DNS
dnspython模块介绍
dnspython是Python实现的一个DNS工具集,它支持几乎所有的记录类型,可以用于查询、传输并动态更新ZONE信息,同时支持TSIG(事务签名)验证消息和EDNS0(扩展DNS)。使用dnspython可以代替Linux命令行下的nslookup以及dig等工具
dnspython的安装
pip install dnspython
使用dnspython进行域名解析
在所有API中,最常使用的是域名查询。dnspython提供了一个DNS解析类resolver,使用它的query方法可以实现域名的查询功能。
dns.resolver.query(qname, rdtype=1, rdclass=1, tcp=False, source=None, raise_on_no_answer=True, source_port=0)
query方法各参数的含义如下:
- qname:查询的域名
- rdtype:指定RR资源
- rdclass:网络类型
- tcp:指定查询是否启用tcp协议
- source:查询源的地址
- source_port:查询源的端口
- raise_on_no_answer:指定查询无应答时是否触发异常,默认为True