#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2016/10/13 11:23
# @Author : Beam
# @Site : DNS域名輪訓(xùn)業(yè)務(wù)監(jiān)控
"""
通過DNS輪詢技術(shù)可以做多一個(gè)域名多贏多個(gè)IP實(shí)現(xiàn)簡單高效的負(fù)載均衡,該腳本主要用途監(jiān)控業(yè)務(wù)是否可用
本腳本以谷歌為例,在實(shí)際自行搭建的dns服務(wù)器只有純IP
"""
# @File : demo_dns_actual.py
# @Software: PyCharm
import dns.resolver
import os
import httplib
iplist = [] #定義IP列表變量
appdomain = "www.beam.pub" #定義業(yè)務(wù)域名
def get_iplist(domain=''):
"""
域名解釋函數(shù),解釋成功的A記錄的IP追加到iplist列表中
:param domain:
:return:
"""
try:
A = dns.resolver.query(domain,'A') ##解析域名的A記錄
except Exception,e:
print "dns resolver error: " + str(e)
return False
for i in A.response.answer:
for j in i.items:
iplist.append(j.address)
return True
def checkip(ip):
"""
checkip函數(shù)用于檢查IP是否能正常打開,其實(shí)還能用curl -I 得到狀態(tài)碼來測(cè)試業(yè)務(wù)是否正常
:param ip:
:return:
"""
checkurl = ip + ':80' #定義要檢測(cè)的IP地址
getcontent = ''
httplib.socket.setdefaulttimeout(5) ##定義HTTP連接超時(shí)時(shí)間為5秒
conn = httplib.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頁面前15個(gè)字符,用于做可用性校驗(yàn)
print getcontent
finally:
if getcontent.lower() == '<!doctype html>': ##監(jiān)控url頁的內(nèi)容一般是實(shí)現(xiàn)定義好的,比如http200等
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"
Dns輪訓(xùn)業(yè)務(wù)狀態(tài)監(jiān)測(cè)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
推薦閱讀更多精彩內(nèi)容
- 1.序: 圖片都是矩形的,但項(xiàng)目實(shí)際應(yīng)用當(dāng)中很多影像數(shù)據(jù)是帶狀的,如果這個(gè)帶狀是斜的,那圖像的像素就會(huì)特別高。 以...
- 《繡春刀II:修羅戰(zhàn)場(chǎng)》 演繹了明末一場(chǎng)小人物的生存游戲 直指人近中年追求理想的無力和無奈 不過還好有愛情調(diào)劑呢 ...
- 姓名:王均云 公司:慈溪祥云汽車零部件 《六項(xiàng)精進(jìn)》289期學(xué)員 【日精進(jìn)打卡第7天】 【知~學(xué)習(xí)】 《六項(xiàng)精進(jìn)》...