- 你们是否跟我一样,不知道什么是DNS,在这里,首先普及一下什么是DNS
DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。 -
dnspython模块简介
dnspython是Python实现的一个DNS工具包,它支持几乎所有的记录类型,可用于查询、传输并动态更新ZONE信息,同时支持TSIG验证信息和EDNS0。在系统管理方面,我们可以利用它的查询功能来实现DNS服务监控及解析结果的校验,可以代替nslookup和dig工具。
2.方法:
-
A:查询域名的IP源码:
domain = input('请输入域名地址:') A = dns.resolver.query(domain, 'A') for i in A.response.answer: for j in i.items: print(j.address)
-
MX:邮件交换记录,定义邮件服务器的域名源码:
domain = input('请输入域名地址:') MX = dns.resolver.query(domain, 'MX') for i in MX: print('MX preference=', i.preference, 'mail exchanger=', i.exchange)
-
NS:标记区域的域名服务器及授权子域
print(dns.resolver.query('baidu.com'), 'NS')
- CNAME:别名记录,实现域名间的映射(方法同上)
- PTR:反向解析,与A相反,将IP转化为域名(方法同上)
- SOA:SOA标记,一个起始授权区的定义(方法同上)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。