1、使用dns.resolver包解析
需要先安装dnspython的包,下载地址为https://pypi.org/simple/dnspython/
获取域名对应的A记录的函数内容
import
dns
.resolver
def
get_a_record
(
domain_name
)
:
address
=
[
]
host_a
=
dns
.resolver
.query
(
domain_name
,
'A'
)
for
i
in
host_a
.response
.answer
:
for
j
in
i
.items
:
address
.append
(
j
.address
)
return
address
关于query函数,
query(self,qname,rdtype=1,rdclass=1,tcp=False,source=None,raise_on_no_answer=True,source_port=0)
其中qname参数就是我们要查询的域名,rdtype参数用来指定RR资源类型,可以将函数中的'A'修改为以下内容,获取域名其他的内容查询结果:
'A': A记录,将域名名转换成IP地址
'MX': MX记录,邮件交换记录,定义邮件服务器的域名
'CNAME': CNAME记录,别名记录,实现域名间的映射
'NS': NS记录,标记区域的域名服务器及授权子域
'PTR': PTR记录,反向解析,与A记录相反
''SOA: SOA记录,一个起始授权区的定义
2、使用nslookup命令查看
A记录
A记录是用来创建到IP地址的记录。
在命令行下可以通过nslookup -qt=a www.ezloo.com来查看A记录。
MX记录
在命令行下可以通过 nslookup -qt=mx ezloo.com 来查看MX记录。
mx 记录的权重对 Mail 服务是很重要的,当发送邮件时,Mail 服务器先对域名进行解析,查找 mx 记录。先找权重数最小的服务器(比如说是 10),如果能连通,那么就将服务器发送过去;如果无法连通 mx 记录为 10 的服务器,那么才将邮件发送到权重为 20 的 mail 服务器上。
CNAME记录
CNAME记录也成别名记录,它允许你将多个记录映射到同一台计算机上。当我们要指向很多的域名到一台电脑上的时候,用CNAME比较方便,就如上面的例子,我们如果服务器更换IP了,我们只要更换a.ezloo.com的A记录即可。
在命令行下可以使用nslookup -qt=cname a.ezloo.com来查看CNAME记录。
TXT记录
TXT记录一般是为某条记录设置说明,比如你新建了一条a.ezloo.com的TXT记录,TXT记录内容"this is a test TXT record.",然后你用 nslookup -qt=txt a.ezloo.com ,你就能看到"this is a test TXT record"的字样。
除外,TXT还可以用来验证域名的所有,比如你的域名使用了Google的某项服务,Google会要求你建一个TXT记录,然后Google验证你对此域名是否具备管理权限。
在命令行下可以使用nslookup -qt=txt a.ezloo.com来查看TXT记录。
AAAA记录
AAAA记录是一个指向IPv6地址的记录。
可以使用nslookup -qt=aaaa a.ezloo.com来查看AAAA记录。
NS记录
NS记录是域名服务器记录,用来指定域名由哪台服务器来进行解析。
可以使用nslookup -qt=ns ezloo.com来查看。
TTL值
TTL=time to live,表示解析记录在DNS服务器中的缓存时间。比如当我们请求解析www.ezloo.com的时候,DNS服务器发现没有该记录,就会下个NS服务器发出请求,获得记录之后,该记录在DNS服务器上保存TTL的时间长度。当我们再次发出请求解析www.ezloo.com 的时候,DNS服务器直接返回刚才的记录,不去请求NS服务器。TTL的时间长度单位是秒,一般为3600秒。
参考帖子:
1、dns.resolver的说明,http://blog.chinaunix.net/uid-28841896-id-4652377.html
2、nslookup命令说明,https://www.ezloo.com/2011/04/a_mx_cname_txt_aaaa_ns.html