實(shí)踐:DNS域名輪循業(yè)務(wù)監(jiān)控

大部分的DNS解析都是一個(gè)域名對(duì)應(yīng)一個(gè)IP地址,但是通過DNS輪循技術(shù)可以做到一個(gè)域名對(duì)應(yīng)多個(gè)IP,從而實(shí)現(xiàn)最簡(jiǎn)單且高效的負(fù)載平衡,不過此方案最大的弊端是目標(biāo)主機(jī)不可用時(shí)無法被自動(dòng)剔除.

[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=="<!doctype html>":    
                                       
        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."

測(cè)試:

輸入你自己的域名,隨便輸入一個(gè)會(huì)報(bào)錯(cuò)

[root@bogon dns]# python SJ.py
please input Monitoring of the domain name:www.51auto.com
203.80.144.183 [Error]
[root@bogon dns]#

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,923評(píng)論 18 139
  • NAME dnsmasq - A lightweight DHCP and caching DNS server....
    ximitc閱讀 2,929評(píng)論 0 0
  • DNS(Domain Name System,域名系統(tǒng)),因特網(wǎng)上作為域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù),能...
    一直在努力hard閱讀 4,690評(píng)論 3 19
  • 1. 概述 在網(wǎng)絡(luò)環(huán)境中一般用戶只需要在瀏覽器中輸入url如www.sunny.com就可以到對(duì)應(yīng)服務(wù)器獲取相應(yīng)的...
    ghbsunny閱讀 2,967評(píng)論 0 7
  • 14.1 引言 域名系統(tǒng)(DNS)是一種用于TCP/IP應(yīng)用程序的分布式數(shù)據(jù)庫(kù),它提供主機(jī)名字和IP地址之間的轉(zhuǎn)換...
    張芳濤閱讀 1,924評(píng)論 0 8