실천: DNS 도메인 이름 순환 업무 모니터링

1509 단어
대부분의 DNS 해석은 하나의 도메인이 하나의 IP 주소에 대응하는 것이지만 DNS 순환 기술을 통해 하나의 도메인이 여러 개의 IP에 대응하여 가장 간단하고 효율적인 부하 균형을 실현할 수 있다. 그러나 이 방안의 가장 큰 폐단은 목표 호스트가 사용할 수 없을 때 자동으로 제거될 수 없다는 것이다.
[root@bogon dns]# cat SJ.py

!/usr/bin/python


import dns.resolver import os import httplib
iplist=[]
appdomain=raw_input("please input Monitoring of the domain name:")
def get_iplist(domain=""): try: A = dns.resolver.query(domain, '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) return True
def checkip(ip): checkurl=ip+":80"getcontent=""httplib.socket.setdefaulttimeout(5) conn=httplib.HTTPConnection(checkurl)
try:  
    conn.request("GET", "/",headers = {"Host": appdomain})    
                                                              
    r=conn.getresponse()  
    getcontent =r.read(15)  
finally:  
    if getcontent=="":    
                                       
        print ip+" [OK]"  
    else:  
        print ip+" [Error]"    

if name=="main": if get_iplist(appdomain) and len(iplist)>0: for ip in iplist: checkip(ip) else: print "dns resolver error."
테스트:
당신의 도메인 이름을 입력하십시오. 아무거나 입력하면 오류가 발생합니다
[root@bogon dns]# python SJ.py please input Monitoring of the domain name:www.51auto.com 203.80.144.183 [Error] [root@bogon dns]#

좋은 웹페이지 즐겨찾기