说明:dnspython模块
实现DNS的工具包,几乎支持所有的记录类型,可用于查询,传输并动态更新zone信息
系统管理方面,可以利用其查询功能实现DNS服务监控以及解析结果的校验
功能:最常用的是域名查询,dnspython提供了一个DNS解析器类-resolver,使用它的query方法类实现域名的查询功能
query方法定义:
query(self,qname,rdtype,rdclass=1,tcp=false,source=None,raise_on_no_answer=True,source_port=0)
qname参数为查询的域名
rdtype参数用来指定RR资源类型
常用的有如下几种:
A记录:将主机名转换为IP地址
MX记录:邮件交换记录,定义邮件服务器的域名
CNAME记录:指别名记录,实现域名间的映射
NS记录:标记区域的域名服务器及授权子域
PTR:反向解析
SOA:soa标记,一个起始授权区的定义
rdclass:网络类型,in为默认值
案例一:实现A记录
import dns.resolver
domain = input("pls enter an domain: ")
A = dns.resolver.query(domain,'A')
for i in A.response.answer:
for j in i.items:
print(j)
案例二:MX记录
import dns.resolver
domain = input("pls enter a domain: ")
MX = dns.resolver.query(domain,'MX')
for i in MX:
print("MX preferenct: ",i.preference,"MX exchange: " ,i.exchange)
案例三:NS记录
import dns.resolver
domain = input("pls enter a domain: ")
NS = dns.resolver.query(domain,'NS')
for i in NS.response.answer:
for j in i.items:
print(j)
案例四:CNAME记录
import dns.resolver
domain = input("pls enter a domain: ")
cname = dns.resolver.query(domain,'CNAME')
for i in cname.response.answer:
for j in i.items:
print(j)