DNS处理模块dnspython
tar -zxvf
dnspython-1.9.4.tar.gz
python setup.py install
dnspython提供的DNS解析器类:resolver,其query方法可实现域名查询,方法定义如下:
query(self,qname,rdtype=1,rdclass=1,tcp=False,source=None,raise_on_no_answer=True,source_port=0)
qname 为域名,rdtype指定RR资源的类型,常用的如下:
A 主机名换成IP
MX 邮件交换记录,定义邮件服务器的域名
CNAME 别名记录,实现域名间的映射
NS 标记区域的域名服务器及授权子域
PTR 反向解析,与A记录相反
SOA SOA标记,一个起始授权区的定义
rdclass 指定网络类型,可选IN(默认)、CH、HS
tcp 是否启用TCP协议,默认False(不启用)
source 源地址,默认查询设备IP
source_port 源地址端口,默认0
raise_on_no_answer 指定查询无应答时是否触发异常,默认True
A记录查询
#!/usr/bin/env python
import
dns.resolver
domain = raw_input(
'Please input an domain: '
)
A = dns.resolver.query(domain
,
'A'
)
for
i
in
A.response.answer:
for
j
in
i.items:
print
j.address
MX记录查询(注意输入域名不包括www)
#!/usr/bin/env python
import
dns.resolver
domain = raw_input(
'Please input an domain: '
)
MX = dns.resolver.query(domain
,
'MX'
)
for
i
in
MX:
print
'MX preference ='
,
i.preference
,
'mail exchanger ='
,
i.exchange
NS记录查询
#!/usr/bin/env python
import
dns.resolver
domain = raw_input(
'Please input an domain: '
)
ns = dns.resolver.query(domain
,
'NS'
)
for
i
in
ns.response.answer:
for
j
in
i.items:
print
j.to_text()
CNAME记录查询
#!/usr/bin/env python
import
dns.resolver
domain = raw_input(
'Please input an domain: '
)