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."

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM