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模块,需要手 ...
随机推荐
- Struts2-学习笔记系列(7)-PreResultListener
在action处理完成之后,系统转入实际的物理试图之间被回调. Action,拦截器都可以添加该监听器.拦截器添加了该监听器后,该监听器会对该拦截器所有拦截的action其作用 public Stri ...
- tf.train.MomentumOptimizer 优化器
tf.train.MomentumOptimizer( learning_rate, momentum, use_locking=False, use_nesterov=False, name='Mo ...
- std::string::assign函数
string& assign (const string& str); string& assign (const string& str, size_t subpos ...
- AJ学IOS 之微博项目实战(7)程序启动新特性用UICollectionViewController实现
AJ分享,必须精品 一:效果 这里实现了大多数app都会有的软件新特性的功能,用的是UICollectionViewController实现的 二:思路 这里用了UICollectionViewCon ...
- Java并发编程实战 02Java如何解决可见性和有序性问题
摘要 在上一篇文章当中,讲到了CPU缓存导致可见性.线程切换导致了原子性.编译优化导致了有序性问题.那么这篇文章就先解决其中的可见性和有序性问题,引出了今天的主角:Java内存模型(面试并发的时候会经 ...
- python干货:5种反扒机制的解决方法
前言 反爬虫是网站为了维护自己的核心安全而采取的抑制爬虫的手段,反爬虫的手段有很多种,一般情况下除了百度等网站,反扒机制会常常更新以外.为了保持网站运行的高效,网站采取的反扒机制并不是太多,今天分享几 ...
- 用Python画的,5 种非传统的可视化技术,超炫酷的动态图
数据可以帮助我们描述这个世界.阐释自己的想法和展示自己的成果,但如果只有单调乏味的文本和数字,我们却往往能难抓住观众的眼球.而很多时候,一张漂亮的可视化图表就足以胜过千言万语.本文将介绍 5 种基于 ...
- Python程序设计 实验 1 熟悉 IDLE 和在线编程平台
------------恢复内容开始------------ 安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2 ...
- 胜利大逃亡 BFS
Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C的矩阵,刚开始Ignatius被关在(0 ...
- mysql数据库深入学习
mysql 数据库 一.数据库介绍 1.关系型数据库的特点 二维表 典型产品Oracle传统企业,MySQL是互联网企业 数据存取是通过SQL 最大特点,数据安全性方面强(ACID) 2.NoSQ ...