日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Python学习笔记-DNS域名轮循业务监控

發(fā)布時(shí)間:2025/6/15 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python学习笔记-DNS域名轮循业务监控 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ?大部分的DNS解析是一個(gè)域名對(duì)應(yīng)一個(gè)IP地址,但是通過(guò)DNS輪循技術(shù)可將一個(gè)域名對(duì)應(yīng)多個(gè)IP地址,這樣可以實(shí)現(xiàn)簡(jiǎn)單且高效的負(fù)載平衡,但是輪循技術(shù)有一個(gè)缺點(diǎn)就是當(dāng)目標(biāo)主機(jī)不可用時(shí),不能自動(dòng)的刪除,所以引出了要對(duì)業(yè)務(wù)主機(jī)的服務(wù)的可用性進(jìn)行監(jiān)控。

本例通過(guò)分析當(dāng)前域名的解析IP,再結(jié)合服務(wù)端口探測(cè)來(lái)實(shí)現(xiàn)自動(dòng)監(jiān)控,在域名解析中添加、刪除IP時(shí),無(wú)須對(duì)監(jiān)控腳步更改。

! Python 2.x中的"httplib"模塊在Python 3.x中變?yōu)?#34;http.client"

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 #!/usr/bin/python3 # import?dns.resolver import?os import?http.client iplist=[]???#定義域名IP列表變量 appdomain="www.google.cn"???#定義業(yè)務(wù)域名 def?get_iplist(domain=""):?#域名解析函數(shù),解析成功IP將被追加到iplist ????try: ????????A?=?dns.resolver.query(domain,?'A')??#解析A記錄類型 ????except?Exception?as?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?=?"" ????http.client.socket.setdefaulttimeout(5)?????#定義http連接超時(shí)時(shí)間(5秒) ????conn?=?http.client.HTTPConnection(checkurl)???#創(chuàng)建http連接對(duì)象 ????try: ????????conn.request("GET",?"/",?headers?=?{"Host":?appdomain})????????#發(fā)起url請(qǐng)求,添加host主機(jī)頭 ????????r?=?conn.getresponse() ????????getcontent?=?r.read(15)???????#獲取url頁(yè)面前15個(gè)字符,以便做可用性校驗(yàn) ????finally: ????????if?getcontent?==?"<!doctype?html>":???#監(jiān)控URL頁(yè)的內(nèi)容一般是事先定義好的,比如"HTTP200"等 ????????????print?(ip+"?[OK]") ????????else: ????????????print?(ip+"?[Error]")?#此處可放告警程序,可以是郵件、短信通知 if?__name__?==?"__main__": ????if?get_iplist(appdomain)?and?len(iplist)>0:???#條件:域名解析正確且至少返回一個(gè)IP ????????for?ip?in?iplist: ????????????checkip(ip) ????else: ????????print?("dns?resolver?error.")


? ? ? 本文轉(zhuǎn)自謝育政 51CTO博客,原文鏈接:http://blog.51cto.com/kurolz/1935044,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者

總結(jié)

以上是生活随笔為你收集整理的Python学习笔记-DNS域名轮循业务监控的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。