DNS 处理模块 dnspython
简介:
dnspython (http://www.dnspython.org/)是Python实现一个DNS的工具包,支持所有的记录类型,可以用于查询、传输并动态更新ZONE信息.
安装
wget http://www.dnspython.org/kits/1.15.0/dnspython-1.15.0.tar.gz
tar zxf dnspython-1.15.0.tar.gz
cd dnspython-1.15.0/
cd dnspython-1.15.0/
模块域名解析方法详解
resolver --- DNS解析器类,使用它的query 方法来实现域名的查询功能。
query(self,qname,rdtype=1,rdclass=1,tcp=False,source=None,raise_on_no_answer=True,source_port=0)
其中:
qname参数为查询的域名,
rdtype参数用来执行RR资源(A , MX ,CNAME ,NS, PTR, SOA)的类型,
rdclass参数用于指定网络类型(IN ,CH,HS)
tcp参数用于用于执行查询是否启用TCP协议,默认是False
source和source_port参数作为指定查询源地址 和 端口
raise_on_on_answer 参加用于指定当查询无应答时是否触发异常,默认为True.
(1) A记录
#!/usr/bin/env python
#_*_ coding:utf-8_*_
import dns.resolver domain = raw_input('Please input an domain: ') #输入域名地址
A = dns.resolver.query(domain, 'A') #指定查询类型为A记录
for i in A.response.answer: #通过response.answer方法获取查询回应信息
for j in i.items: #遍历回应信息
print j.address

(2) MX记录
#!/usr/bin/env python
#_*_ coding:utf-8_*_
import dns.resolver domain = raw_input('Please input an domain: ') #输入域名地址
MX = dns.resolver.query(domain, 'MX') #指定查询类型为A记录
for i in MX: #遍历回应结果,输出MX记录的preference及exchanger信息
print 'MX preference =',i.preference,' mail exchanger =',i.exchange

(3) NS记录
#!/usr/bin/env python
#_*_ coding:utf-8_*_
import dns.resolver domain = raw_input('Please input an domain: ') #输入域名地址
NS = dns.resolver.query(domain, 'NS') #指定查询类型为ns记录
for i in NS.response.answer: #通过response.answer方法获取查询回应信息
for j in i.items:
print j.to_text()

(4) CNAME记录
#!/usr/bin/env python
#_*_ coding:utf-8_*_
import dns.resolver domain = raw_input('Please input an domain: ') #输入域名地址
CNAME = dns.resolver.query(domain, 'CNAME') #指定查询类型为CNAME记录
for i in CNAME.response.answer: #结果将回应cname后的目标域名
for j in i.items:
print j.to_text()

DNS动态更新
dns动态更新是一种在不reload和重启DNS服务的情况下更新ZONE内容的机制。dns.update实现了这种功能。具体用法如下:
import dns.tsigkeyring
import dns.update
import dns.query keyring = dns.tsigkeyring.from_text({'test_key': 'XXXXXXXXXXXXXXX'}) # xxx: 搭建bind时候用于验证的 key
update = dns.update.Update("ZONE", keyring=keyring) # ZONE: 例如baidu.com
update.add("aaa", 60, 'a', "192.1.1.1")
update.replace("bbb", 60, 'a', "192.168.1.2")
update.delete("cccc")
DNS 处理模块 dnspython的更多相关文章
- python自动化运维笔记3 —— dns处理模块dnspython
1.3 DNS处理模块 dnspython是python实现的一个DNS工具包,它支持几乎所有的记录类型,可以用于查询.传输并动态更新ZONE信息,同时支持TSIG(事物签名)验证消息和EDNS0(扩 ...
- DNS处理模块dnspython
一.介绍 官网:http://www.dnspython.org/ https://pypi.org/project/dnspython/ dnspython是Python的DNS工具包.它支持几乎所 ...
- python运维开发常用模块(三)DNS处理模块dnspython
1.dnspython模块介绍: dnspython(http://www.dnspython.org/)是Python实现的一个DNS 工具包,它支持几乎所有的记录类型,可以用于查询.传输并动态更新 ...
- python -- DNS处理模块dnspython
简介 dnspython – 是python实现的一个DNS工具包,利用其查询功能来实现dns的服务监控及解析结果的校验 安装dnspython pip install dnspython 使用 常见 ...
- CentOS7--DNS处理模块DnsPython的简单使用
初步了解: DnsPython是Python实现的一个DNS工具包,支持几乎所有的记录类型. 安装: # wget http://www.dnspython.org/kits/1.9.4/dnspyt ...
- python已安装了DNS处理模块,执行时却报错ImportError
一.代码: #!/usr/bin/python import dns.resolver ............此处省略 二.故障报错 ubuntu:~/automation/001_base$ py ...
- Python自动化运维——DNS处理模块
Infi-chu: http://www.cnblogs.com/Infi-chu/ 模块:dnspython 功能: 支持所有的记录类型 可以用于查询.传输并动态更新ZONE信息 支持TSIG(事务 ...
- python自动化运维常用模块安装
1.系统信息性能模块:psutil 源码安装: wget https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz -- ...
- Python运维自动化开发之Fabric模块
本章讲解fabric模块,与上一章的paramiko模块功能类似,fabric是在paramiko基础上又做了一层封装,操作起来更方便.主要用于多台服务器批量执行任务. 非内置Python模块,需要手 ...
随机推荐
- "额外插入的文本"组件:<ins> —— 快应用组件库H-UI
 <import name="ins" src="../Common/ui/h-ui/text/c_tag_underline"></imp ...
- Blazor WebAssembly 3.2.0 Preview 4 如期发布
ASP.NET团队如期3.16在官方博客发布了 Blazor WebAssembly 3.2.0 Preview 4:https://devblogs.microsoft.com/aspnet/bla ...
- 如何利用 githob 上传自己的网站
如何搭建自己的网页是每个学前端伙伴不可缺少的一个过程,特意去看过很多如何搭建的教程,但都看不懂觉得很麻烦, 在慢慢的学习中接触到githob,发现了一个大宝藏(如果一个code都不认识githob 那 ...
- 004-流程控制-C语言笔记
004-流程控制-C语言笔记 学习目标 1.[掌握]关系运算符和关系表达式 2.[掌握]逻辑运算符和逻辑表达式 3.[掌握]运算符的优先级和结合性 4.[掌握]if-else if-else结构的使用 ...
- Delphi Unicode转中文
function UniCode2GB(S : String):String;Var I: Integer;beginI := Length(S);while I >=4 do begintry ...
- Redis入门使用 -- 个人总结
目录 什么是Redis? Redis 与其他 key - value 数据库的对比 Redis 能干什么 Redis的安装配置 Redis启动和连接 上面开启的是非守护线程下启动(独占模式),下面我们 ...
- 优质中文NLP资源集合,做项目一定用得到!
今天要给大家在推荐 Github 上一个优质的中文 NLP 工具和资源集合项目——funNLP,已经获得了 5.3k Stars,1k+ Forks. 项目作者 杨洋,一枚水博&互联网民工,目 ...
- webstorm tslint配置
webstorm设置 settings >> TypeScript >> TSLint, 勾选 Enable ,选取 tslint包路径...npm\node_modules\ ...
- 一个令人兴奋的ES6星特性-结构赋值
学完了前4节,今天我给大家带来的是一个令人兴奋的特性:解构赋值.这个章节代码片段有点偏多,不过可以放心,一点都不烧脑,还是老样子:简单易懂. 什么是解构赋值 按照一贯的套路,接下来的内容是解释:什么是 ...
- jdk1.7和jdk1.8在接口方面的改动
1.JDK7及其之前,接口中都是抽象方法,且不能出现static方法 2.接口的变量都是public final static 全局静态常量,无变化 3.接口中可以添加非抽象方法(static),通过 ...