一、介绍

官网:http://www.dnspython.org/

  https://pypi.org/project/dnspython/

  dnspython是Python的DNS工具包。它支持几乎所有的记录类型。它可以用于查询,区域传输和动态更新。它支持TSIG认证消息和EDNS0(扩展DNS)。

  dnspython提供对DNS的高级和低级访问。高级别类对给定名称,类型和类的数据执行查询,并返回答案集。低级别允许直接操作DNS区域,消息,名称和记录。

  使用dnspython的几种方法,官方示例(点击查看)

二、dnspython模块安装

CentOS

[root@localhost test]# pip3 install dnspython
Collecting dnspython
Downloading https://files.pythonhosted.org/packages/a6/72/209e18bdfedfd78c6994e9ec96981624a5ad7738524dd474237268422cb8/dnspython-1.15.0-py2.py3-none-any.whl (177kB)
% |████████████████████████████████| 184kB 27kB/s
Installing collected packages: dnspython
Successfully installed dnspython-1.15.

Mac OS

MacBook-Pro:~ h$ pip3 install dnspython
Collecting dnspython
Downloading https://files.pythonhosted.org/packages/a6/72/209e18bdfedfd78c6994e9ec96981624a5ad7738524dd474237268422cb8/dnspython-1.15.0-py2.py3-none-any.whl (177kB)
% |████████████████████████████████| 184kB 10kB/s
Installing collected packages: dnspython
Successfully installed dnspython-1.15.

三、模块域名解析方法详解

  dnspython模块提供了大量的DNS处理方法,最常用的方法是域名查询。dnspython提供了一个DNS解析器类——resolver,使用它的query方法来实现域名的查询功能。query方法的定义如下:

query(self,qname,rdtype=,rdclass=,tcp=False,source=None,raise_on_no_answer=True,source_port=)

其中,qname参数为查询的域名。retype参数用来指定RR资源的类型,常用的有以下几种:

A记录,将主机名转换成IP地址;
MX记录,邮件交换记录,定义邮件服务器的域名;
CNAME记录,指别名记录,实现域名间的映射;
NS记录,标记区域的域名服务器及授权子域;
PTR记录,反向解析,与A记录相反,将IP转换成主机名;
SOA记录,SOA标记,一个起始授权区的定义。

rdclass参数用于指定网络类型,可选的值有IN、CH与HS,其中IN为默认,使用最广泛。TCP参数用于指定查询是否启用TCP协议,默认为False(不启用)。source与source_port参数作为指定查询源地址与端口,默认值为查询设备IP地址和0.raise_on_no_answer参数用于指定当查询无应答时是否触发异常,默认为True。

DNS处理模块dnspython的更多相关文章

  1. python自动化运维笔记3 —— dns处理模块dnspython

    1.3 DNS处理模块 dnspython是python实现的一个DNS工具包,它支持几乎所有的记录类型,可以用于查询.传输并动态更新ZONE信息,同时支持TSIG(事物签名)验证消息和EDNS0(扩 ...

  2. python运维开发常用模块(三)DNS处理模块dnspython

    1.dnspython模块介绍: dnspython(http://www.dnspython.org/)是Python实现的一个DNS 工具包,它支持几乎所有的记录类型,可以用于查询.传输并动态更新 ...

  3. DNS 处理模块 dnspython

    简介: dnspython (http://www.dnspython.org/)是Python实现一个DNS的工具包,支持所有的记录类型,可以用于查询.传输并动态更新ZONE信息. 安装 wget ...

  4. python -- DNS处理模块dnspython

    简介 dnspython – 是python实现的一个DNS工具包,利用其查询功能来实现dns的服务监控及解析结果的校验 安装dnspython pip install dnspython 使用 常见 ...

  5. CentOS7--DNS处理模块DnsPython的简单使用

    初步了解: DnsPython是Python实现的一个DNS工具包,支持几乎所有的记录类型. 安装: # wget http://www.dnspython.org/kits/1.9.4/dnspyt ...

  6. python已安装了DNS处理模块,执行时却报错ImportError

    一.代码: #!/usr/bin/python import dns.resolver ............此处省略 二.故障报错 ubuntu:~/automation/001_base$ py ...

  7. Python自动化运维——DNS处理模块

    Infi-chu: http://www.cnblogs.com/Infi-chu/ 模块:dnspython 功能: 支持所有的记录类型 可以用于查询.传输并动态更新ZONE信息 支持TSIG(事务 ...

  8. python自动化运维常用模块安装

    1.系统信息性能模块:psutil 源码安装: wget https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz -- ...

  9. Python运维自动化开发之Fabric模块

    本章讲解fabric模块,与上一章的paramiko模块功能类似,fabric是在paramiko基础上又做了一层封装,操作起来更方便.主要用于多台服务器批量执行任务. 非内置Python模块,需要手 ...

随机推荐

  1. xsd解析

    1. 解释: <xsd:element name="interceptors"> <xsd:annotation> 这一块是对第一行的注解(解释) < ...

  2. 关于WebSecurityConfigurerAdapter和ResourceServerConfigurerAdapter源码分析

    前言:优先级高于ResourceServerConfigurer,用于保护oauth相关的endpoints,同时主要作用于用户的登录(form login,Basic auth) WebSecuri ...

  3. java.lang.ArrayIndexOutOfBoundsException异常分析及解决

    这是一个非常常见的异常,从名字上看是数组下标越界错误,解决方法就是查看为什么下标越界. 下面是一个错误示例: Exception in thread "main" java.lan ...

  4. Python模块部分

    模块初识及正则表达式 Python re模块与正则表达式的运用 Python中常用模块一 模块和包

  5. 初学者上传文件到github

    http://blog.csdn.net/steven6977/article/details/10567719 我的github是wzb19960208,怕忘了=.=

  6. vue之vue-router跳转

    vue之vue-router跳转 一.配置 在初始化使用vue-cli的时候会有vue-router的安装选择,选择安装即可. 二.嵌套路由 一般情况下,登录和项目页面属于同级,所以App.vue 只 ...

  7. 归纳一下:C#线程同步的几种方法

    转自原文 归纳一下:C#线程同步的几种方法 我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在后台处理一大堆数据,但还要使用户界面处于可操作状态:或者你的程序需要访问一些外部资源如数据库 ...

  8. mongodb(五)

    mongoDB 启动配置祥讲导出,导入,运行时备份Fsync锁,数据修复用户管理,安全认证 1.启动项 mongod --help 1.1利用config配置文件来启动数据库改变端口为8888 mon ...

  9. Arduino教程资料汇总(8月22日悄悄跟新了一下)

    http://www.geek-workshop.com/thread-985-1-1.html 本帖最后由 迷你强 于 2013-8-31 12:36 编辑 =====F-101 arduino基础 ...

  10. django模版 常用变量

    在request中有很多有用的东西,如下: 获取当前用户: 1 {{ request.user }} 如果登陆就显示内容,不登陆就不显示内容: 1 2 3 4 5 {% if request.user ...