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模块,需要手 ...
随机推荐
- 一个hql 关键字member(非mysql)引起的 vo 数据 保存数据库错误
2015-03-19 14:16:29,285 ERROR [Thread-3] (DAOHelper.java:312) - updateByEntityPK:com.agileeagle.dao. ...
- week7_简单题_C_水题_hdu_5578+F_贪心_hdu_5583
C HDU_5578 求字符串中所有相同字母的最小距离H. Input 实例个数T然后T行字符串字符串中仅含有小写字母.1≤T≤501≤len≤1000(len为字符串长度) Output ...
- [算法]素数筛法(埃氏筛法&线性筛法)
目录 一.素数筛的定义 二.埃氏筛法(Eratosthenes筛法) 三.线性筛法 四.一个性质 一.素数筛的定义 给定一个整数n,求出[1,n]之间的所有质数(素数),这样的问题为素数筛(素数的筛选 ...
- Docker-Bridge Network 01 容器间通信
本小节介绍bridge network模式下,单机上的容器网络拓扑及通信. 1.前言 对于单机上的容器,Docker提供了bridge.host.none三种网络.我们首先介绍经典的bridge模式. ...
- EFCore.Sharding(EFCore开源分表框架)
EFCore.Sharding(EFCore开源分表框架) 简介 引言 开始 准备 配置 使用 按时间自动分表 性能测试 其它简单操作(非Sharing) 总结 简介 本框架旨在为EF Core提供S ...
- 高级工程师-Java注解
高级工程师-Java注解 前言 代码,就是我们身为程序员的名片. 简洁,优雅,统一,是我们的追求. 优秀的代码,会给浏览者一种艺术的美感.如DL大神的JUC包,感兴趣的小伙伴,可以研究一下. 那么日常 ...
- cheat sheet 简介
cheat sheet 速查表 /小抄 如果期末考试老师只让你让带一张A4纸,合法"作弊",纸上能写多少全凭自己本事,你会写什么?大部分人应该把整个课程的知识重点梳理一遍,方便记忆 ...
- stand up meeting 12/25/2015 & weekend 12/26/2015~12/27/2015
part 组员 工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云 在pdf阅读页面添加生词本显示:UI美化 6 完善显示 ...
- PHP 将字符串转换为字符集格式UTF8/GB2312/GBK 函数iconv()
iconv()介绍 iconv函数可以将一种已知的字符集文件转换成另一种已知的字符集文件 iconv('要转化的格式',‘转化后的格式’,‘转化的数据’); 但是转化是经常出错,一般需要在转成的编码 ...
- 用 Python 获取百度搜索结果链接
前言 近期有许多项目需要这个功能,由于Python实现起来比较简单就这么做了,代码贴下来觉得好点个赞吧~ 代码 # coding: utf-8 import os import time import ...