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