DNS处理模块dnspython

http://www.dnspython.org/kits/1.9.4/

python setup.py install

A记录查询

import dns.resolver
domain = raw_input(‘Please input an domain: ‘)
A = dns.resolver.query(domain, ‘A‘)
for i in A.response.answer:
  for j in i.items:
    print j.address

MX记录

#!/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

Please input an domain: zte.com
MX preference = 0 mail exchanger = mx.zte.com.

NS记录

#!/usr/bin/env python
import dns.resolver

domain = raw_input(‘Please input an domain: ‘)
ns = dns.resolver.query(domain, ‘NS‘)
for i in ns.response.answer:
     for j in i.items:
          print j.to_text()

CNAME记录

#!/usr/bin/env python
import dns.resolver

domain = raw_input(‘Please input an domain: ‘)

cname = dns.resolver.query(domain, ‘CNAME‘)
for i in cname.response.answer:
    for j in i.items:
        print j.to_text()

#!/usr/bin/python

import dns.resolver
import os
import httplib

iplist=[]    #定义域名IP列表变量
appdomain="www.google.com.hk"    #定义业务域名

def get_iplist(domain=""):    #域名解析函数,解析成功IP将追加到iplist
    try:
        A = dns.resolver.query(domain, ‘A‘)    #解析A记录类型
    except Exception,e:
        print "dns resolver error:"+str(e)
        return
    for i in A.response.answer:
        for j in i.items:
            iplist.append(j.address)    #追加到iplist
    return True

def checkip(ip):
    checkurl=ip+":80"
    getcontent=""
    httplib.socket.setdefaulttimeout(5)    #定义http连接超时时间(5秒)
    conn=httplib.HTTPConnection(checkurl)    #创建http连接对象

    try:
        conn.request("GET", "/",headers = {"Host": appdomain})  #发起URL请求,添加host主机头
        r=conn.getresponse()
        getcontent =r.read(15)   #获取URL页面前15个字符,以便做可用性校验
    finally:
        if getcontent=="<!doctype html>":  #监控URL页的内容一般是事先定义好,比如“HTTP200”等
            print ip+" [OK]"
        else:
            print ip+" [Error]"    #此处可放告警程序,可以是邮件、短信通知

if __name__=="__main__":
    if get_iplist(appdomain) and len(iplist)>0:    #条件:域名解析正确且至少要返回一个IP
        for ip in iplist:
            checkip(ip)
    else:
        print "dns resolver error."
时间: 2024-10-08 20:50:21

DNS处理模块dnspython的相关文章

Python学习笔记-DNS处理模块dnspython

DNS处理模块dnspython     dnspython是python实现的一个DNS工具包,它支持几乎所有的记录类型,可以用于查询.传输并动态更新ZONE信息,同时支持TSIG(事务签名)验证消息和EDNS0(扩展DNS). 在系统管理方面,我们可以利用其查询功能来实现DNS服务监控以及解析结果的校验,可以替代nslookup和dig等工具,轻松做到与现有平台的整合.     下载dnspython模块 [[email protected] ~]# python3 -m easy_inst

Python DNS 处理模块 dnspython

Python DNS 处理模块 dnspython 以下列举了DNSPython模块中常用方法,借鉴于书籍<Python 自动化运维:技术与最佳实践> dnspython提供大量关于DNS的处理方法,最常用的是域名查询.dnspython提供了一个DNS解析类resolver,使用它的query方法来实现域名的查询功能. query(self, qname, rdtype = 1, rdclass = 1, tcp = False, source = None, raise_on_no_ans

python -- DNS处理模块dnspython

简介 dnspython – 是python实现的一个DNS工具包,利用其查询功能来实现dns的服务监控及解析结果的校验 安装dnspython pip install dnspython 使用 常见的DNS解析类型包括A.MX.NS.CNAME (1)A记录的查询,实例如下: import dns.resolver domain = raw_input('Please input an domain: ') A = dns.resolver.query(domain, 'A') for i i

[爬虫学习笔记]C#基于ARSoft.Tools.Net的DNS解析模块(半成品)

      最近在做爬虫的作业,今天学习的内容是关于DNS解析模块的制作的.使用的库为ARSoft.Tools.Net,它是一个非常强大的开源DNS控件库,包含.Net SPF validation, SenderID validation以及DNS Client.DNS Server接口.使用该接口可轻松实现DNS客户请求端及服务器解析端.项目地址:http://arsofttoolsnet.codeplex.com/,Nuget包地址:https://www.nuget.org/packag

DNS模块dnspython应用及业务监控示例

1 dnspython处理模块的安装,源码方式 wget http://www.dnspython.org/kits/1.9.4/dnspython-1.9.4.tar.gz tar zxf dnspython-1.9.4.tar.gz cd dnspython-1.9.4/ python setup.py install 2 解析示例 A记录查询示例 #!/usr/bin/env python # -*- coding: utf-8 -*- import dns.resolver domain

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

Infi-chu: http://www.cnblogs.com/Infi-chu/ 模块:dnspython 功能: 支持所有的记录类型 可以用于查询.传输并动态更新ZONE信息 支持TSIG(事务签名)验证消息和EDNS0(扩展DNS) 安装: wget http://www.dnspython.org/kits/1.9.4/dnspython-1.9.4.tar.gz tar -zxvf dnspython-1.9.4.tar.gz cd dnspython-1.9.4 python se

一、系统基础信息模块(cpu,内存,ip,dns)模块

一.系统基础信息模块(cpu,内存,ip,dns)模块 1.系统性能信息模块psutil a.(cpu信息) # yum -y install python-devel # wget https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz --no-check-certificate # tar -zxvf psutil-2.0.0.tar.gz # cd psutil-2.0.0.tar.gz # python

《Python自动化运维之路》 系统基础信息模块(一)

系统性能收集模块Psutil 目录: 系统性能信息模块psutil 系统性能信息模块psutil psutil能够轻松实现获取系统运行的进程和系统利用率包括(CPU,内存,磁盘 和网络)等.主要用于系统监控.对于系统维护来说是个不错的模块. 1.模块的安装 wget https://files.pythonhosted.org/packages/14/a2/8ac7dda36eac03950ec2668ab1b466314403031c83a95c5efc81d2acf163/psutil-5.

python-dnspython模块

dnspython是Python实现的一个DNS工具包,它支持几乎所有的记录类型,可用于查询.传输并动态更新ZONE信息,同时支持TSIG验证信息和EDNS0.在系统管理方面,我们可以利用它的查询功能来实现DNS服务监控及解析结果的校验,可以代替nslookup和dig工具. 首先安装dnspython模块 dnspython模块提供了大量的DNS处理方法,最常用的方法是域名查询.它提供了一个DNS解析器类(resolver),使用这个类的query方法来实现域名的查询功能.query方法的定义