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模块,需要手 ...
随机推荐
- 搭建react项目(低配版)
react项目低配版,可作为react相关测试的基础环境,方便快速进行测试. git clone git@github.com:whosMeya/simple-react-app.git git ch ...
- Python常见数据结构-推导式
推导式是一种重要的Python特性,是一种简单精炼创建Python数据结构的方式. 列表推导式,详细参考https://www.jianshu.com/p/0a269715a742 基本格式为:[表达 ...
- Linux c++ vim环境搭建系列(0)——简介
vim 学习 简介: 源码编译使用vim及其插件. 内容包含: vim的编译安装, llvm clang的编译安装, 插件youcompleteme的编译安装使用, 以及vim其他插件的使用. 搭建环 ...
- std::chrono计算程序运行时间
void CalRunTime() { auto t1=std::chrono::steady_clock::now(); //run code auto t2=std::chrono::steady ...
- android学习笔记——使用QuickContactBadge关联联系人
本文大部分内容来自<疯狂android讲义>. QuickContactBadge继承了ImageView,因此它的本质也是图片,也可以通过android:src属性指定它显示的图片.Qu ...
- Linux网络编程(1)
Preview 课程要求,所以学了一下UNIX网络编程,老师说挺简单的,实际上手之后才发现这里面关系没那么简单.从CS:APP11章网络编程,再加上不停地man,对当前的学习做个总结,也顺带当个报告了 ...
- 基于 HTML5 WebGL 的污水处理厂泵站自控系统
前言 一道残阳铺水中,半江瑟瑟半江红.随着城市建设的迅速发展,每年都有大量新建管网水管通水运行.城市中有大量的排水设备,形成相应的城市排水系统,排水系统由检查井.排水泵站.污水处理厂.雨水口.排放口等 ...
- php正则验证手机、邮箱
//验证电话private function reg_phone($phone){ if (preg_match("/^13[0-9]{1}[0-9]{8}$|15[0189] ...
- session开启慢的原因及解决办法
做微信开发的时候发现微信回复特别慢,发个消息要好几秒才回复,发现不正常后就赶紧找答案,到最后发现是session_start()开启很慢,这是因为session缓存文件过多,默认缓存文件在:win:w ...
- 2019-2020-1 20199308《Linux内核原理与分析》第四周作业
<Linux内核分析> 第三章 MenuOS的构造 3.1 Linux内核源代码简介 操作系统的"两把宝剑" 中断上下文:保存现场和恢复现场 进程上下文 目录结构 ar ...