初步了解:

DnsPython是Python实现的一个DNS工具包,支持几乎所有的记录类型。

安装:

  1. # wget http://www.dnspython.org/kits/1.9.4/dnspython-1.9.4.tar.gz
  2. # tar -zxvf dnspython-1.9.4.tar.gz
  3. # cd dnspython-1.9.4
  4. # python setup.py install

简单使用:

在很多书(如Python自动化运维技术与最佳实践等)和网络上 关于模块的使用,一上来就是哗哗一堆代码,从而忽略了

一些简单的细节,让像我这样的小白摸不着头。即使给了代码,连运行都不会,呵呵,下面我会给出以下步骤供初学者参考。

实现MX记录查询:

  1. 首先创建文件夹,用来存储这个练习(建议刚开始学习的人都这样,不要乱放脚本),我这里创建的PythonTest文件夹来存储。

mkdir PythonTest

2.cd进入该文件夹,执行 vi DnsPythonMX.py命令系统会创建DnsPython的文件(py后缀名仅仅是标识而已),并打开该文件,进入

编辑状态后,输入以下命令(命令解释见后面:)

#!/usr/bin/env python         
import dns.resolver
domain = raw_input('Please input an domain: ')
MX = dns.resolver.query(domain, 'MX')
for i in MX:
print 'MX preference =',i.preference,'mail exchanger=',i.exchange

然后保存退出。

解释:第一句是告诉操作系统的设置环境中自动找python的解释器(也可以写成#!/usr/bin/python,但是并不推荐,这样写就是写成绝对路径,

写死了python的位置,如果更改了的话就GG了,兄弟,找不到python的解释器);

第二句是调用DNS的解析器类---resolver,使用它的query方法进行解析;

第三句是输入解析的域名;

第四句是指定查询类型为MX类型;

最后的for循环是遍历回应结果,输出MX记录的preference及exchanger信息。

运行:输入python DnsPythonMX.py运行该脚本

测试:用126.com域名进行验证:

CentOS7--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

    一.介绍 官网:http://www.dnspython.org/ https://pypi.org/project/dnspython/ dnspython是Python的DNS工具包.它支持几乎所 ...

  4. DNS 处理模块 dnspython

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

  5. python -- DNS处理模块dnspython

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

  6. python模块介绍- HTMLParser 简单的HTML和XHTML解析器

    python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...

  7. 多模块分布式系统的简单服务访问 - OSGI原形(.NET)

    多模块分布式系统的简单服务访问 - OSGI原形(.NET) 先描述一下本篇描述的适用场景(3台server, 各个模块分布在各个Server上,分布式模块互相依赖.交互的场景): 多个OSIG引擎交 ...

  8. nodejs nodejs模块使用及简单的示例

    nodejs模块使用及简单的示例 参考菜鸟教程网:http://www.runoob.com/ 一.fs模块的使用: 1.文件操作: 读文件: //读文件 var fs=require('fs'); ...

  9. SELECTORS模块实现并发简单版FTP

    环境:windows, python 3.5功能:使用SELECTORS模块实现并发简单版FTP允许多用户并发上传下载文件 结构:ftp_client ---| bin ---| start_clie ...

随机推荐

  1. canvas--画宇宙

    <!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...

  2. 今天工作中遇到的根据用户id取得产品大类和相关小类的问题

    今天做了一个项目,需求是客户登陆后,可以从会员中心发布详细信息(包括联系信息和公司信息),插入到数据库后在将来生成一个公司页面模板,一般的产品大类+小类 用repeater嵌套就可以了,但是这个涉及到 ...

  3. 后台的Activity被系统回收怎么办?

    onSaveIntanceState,当程序中的某个Activity A在运行中,主动或者被动的运行另外一个新的Activity B,这个时候 A就会执行onSaveIntanceState(Bund ...

  4. Redhat修改本地yum源

    1.将Centos系统的ios文件传到服务器,比如传到/root目录下: 2.将ios文件挂载到本地,需要在本地建立一个文件夹,比如/yum; mkdir /yum mount -o loop /ro ...

  5. protected访问修饰符

    子类可以调用, 但实例化的对像不可调用  new object;

  6. test在博客中嵌入实例代码

        // 其实很简单,只要把css.div.js代码直接写在里面就可以了.通过查看源代码就能看得很清楚了. 要注意的一点就是:如果div里没有任何内容,则它会被(博客网)删除掉,所以即使没有内容, ...

  7. em与px的区别 [ 转 ]

    其实,还是不大理解,为什么1em=16px:而且,还一般要在body里面,就写清楚Fone-size=62.5%,然后再让1em=10px进行使用:那么,为什么不直接在当时定义em的时候,就直接让它等 ...

  8. 1234: ZJTZYRC筛offer(并查集 )

    链接:http://xcacm.hfut.edu.cn/problem.php?id=1234 以后关于字符的输入都用cin吧,换成scanf居然wa了 #include <iostream&g ...

  9. Android MVP模式 简单易懂的介绍方式

    主要学习这位大神的博客:简而易懂 Android MVP模式 简单易懂的介绍方式 https://segmentfault.com/a/1190000003927200

  10. ios如何判断键盘是否已经显示

    ios如何判断键盘是否已经显示   在群里看到有人问:ios如何判断键盘已经显示在界面上. 其实这个解决很简单: 写一个单例来管理键盘的状态. 这个单例在初始化方法init种监听2个事件,分别是 UI ...