初步了解:

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. 网页、JavaScript 数据类型

    JavaScript 数据类型 一.基本数据类型: 字符串.数字.布尔.日期和时间 JavaScript 拥有动态类型 JavaScript 拥有动态类型.这意味着相同的变量可用作不同的类型: 1 v ...

  2. JavaWeb学习笔记--filter开发

    介绍自定义的Filter类必须实现Filter接口,并且实现Filter接口定义的init() doFilter() destory()方法.其中init为初始化,destory为销毁 doFilte ...

  3. JAVA_build_ant_cmd pass muti param

    ant -f buildFileName -Dpropretyname1=value1  -Dpropretyname2=value2 ant [options] [target [target2 [ ...

  4. laravel跟jquery之间传输json数据

    laravel代码: public function test(){ $arr = ["test1"=>"1","test2"=> ...

  5. Bash的几个知识点

    1. 区别 builtin command, external command,bash script. 用builtin command(hash.type.command),而不是which命令( ...

  6. C++中实现回调机制的几种方式(一共三种方法,另加三种)

    (1)Callback方式Callback的本质是设置一个函数指针进去,然后在需要需要触发某个事件时调用该方法, 比如Windows的窗口消息处理函数就是这种类型. 比如下面的示例代码,我们在Down ...

  7. VMware Network Adapter VMnet1和VMnet8 未识别的网络的解决方法

    VMware Network Adapter VMnet1和VMnet8 被防火墙认定为未识别的网络,阻隔,无法使用端口映射,虚拟机的80端口无法传入,数据包只能出不能入.且公用网络被限制不能修改为家 ...

  8. 如何使用git创建项目,创建分支

    git config -global user.name "Your name" git config -global user.email "you@example.c ...

  9. Android Content Provider简介

    Content Provider是Android的四大组件之一,与Activity和Service相同,使用之前需要注册: Android系统中存在大量的应用,当不同的应用程序之间需要共享数据时,可以 ...

  10. 定时关机命令-shutdown

    定时关机命令-shutdown 一般会用到的定时关机命令有两种: Shutdown -s -t 3600 1小时后自动关机(3600秒) at 12:00 Shutdown -s 12:00自动关闭计 ...