dnspython 是Python实现的一个DNS工具包,支持几乎所有的记录类型,可以用于查询,传输并动态更新ZONE信息,同时支持TSIG(事务签名)验证消息和EDNS0(扩展DNS)。可以替代nslookup,dig等工具。
#pip安装 pip3 install dnspython #最新版本v1.15.0
模块域名解析方法详解
dnspython提供了大量的DNS处理方法,最常用的是域名查询。
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记录相反,将IP转换为主机名
SOA记录,一个起始授权区的定义
rdclass 用来指定网络类型,如IN,CH,HS,IN为默认
tcp 指定查询是否启用TCP协议,默认False(不启用)
source,source_port 指定查询源地址与端口
raise_on_no_answer 查询无应答是否触发异常
常见解析类型示例脚本
A记录
#!/usr/bin/env python # -*- coding:utf-8 -*- #Author: ccoo2 import dns.resolver # domain = input("请输入域名地址: ") domain = 'www.baidu.com' A = dns.resolver.query(domain,'A') for i in A.response.answer: # print(i) for j in i.items: print(j)
MX记录