【Python自动化运维】DNS轮询技术
来源:互联网 发布:知乎新房床选购 编辑:程序博客网 时间:2024/06/12 12:09
DNS轮询技术主要先解析出所有主机,然后可通过http请求方式测试主机,再决定是否将请求发送到此主机,实现负载均衡。
结构图如下:
图.1
DNS域名解析代码清单:
具体实现转发请求不实现
#!/usr/bin/python#-*- coding: utf-8 -*-import sysimport dns.resolverimport httplibIP=[]def Get_IP_List(domain=""): AB = None try: AB = dns.resolver.query(domain, 'A') except Exception,e: print "dns.resolver.query:",str(e) finally: if AB is not None: for i in AB.response.answer: for j in i.items: #query第二个参数明明指定是返回'A'记录,测试了一下www.baidu.com,居然'CNAME'也返回了,增加异常处理 #print type(j) try: IP.append(j.address) except Exception,e: continue return Truedef Check_IP(ip, i): checkurl = ip+":80" httplib.socket.setdefaulttimeout(5) conn = httplib.HTTPConnection(checkurl) ret = None content = None try: conn.request("GET", "/", headers={"Host":sys.argv[i]}) ret = conn.getresponse() content = ret.read(15) finally: if content == "<!DOCTYPE HTML>" or content == "<!doctype html>": print ip+" [OK]" else: print ip+" [ERROR]"if __name__ == "__main__": arglen = len(sys.argv) for i in range(1,arglen): print "-"*20 print sys.argv[i] Get_IP_List(sys.argv[i]) for ip in IP: Check_IP(ip, i) print "-"*20
0 0
- 【Python自动化运维】DNS轮询技术
- python自动化运维学习笔记3 - DNS处理模块dnspython
- Python自动化运维笔记(三):DNS处理模块dnspython
- Python自动化运维 技术与最佳实践
- python自动化运维
- python自动化测试,自动化基本技术原理
- python自动化运维记录
- 自动化运维(python)
- 读《Python 自动化运维:技术与最佳实践》【思维导图版】
- 舍本求末的运维自动化技术热潮
- python自动化测试(2)-自动化基本技术原理
- ansible-python自动化运维框架实例
- Python运维自动化--nginx配置文件对比
- Python自动化运维课程学习--Day1
- Python自动化运维课程学习--Day1
- Python自动化运维课程学习--Day1
- python自动化运维学习记录2
- 《python运维自动化》-备份目录
- 深入浅出Mybatis系列(九)---强大的动态SQL
- 羽化的原理
- UncaughtExceptionHandler:java未捕获的异常:错误
- 添加tomcat到eclipse上去
- Socket
- 【Python自动化运维】DNS轮询技术
- oracle 时间戳生成语句(秒级+毫秒级)
- Plumoi 2016年星座运势-健康港
- java发送邮件时遇到的坑
- Cookie跨域setDomain和setPath
- 迁移报告 - protobuf(错误都在这里找)
- 面试
- 通过PreparedStatement 对数据库进行增删改查
- IOS Dev Intro - NSImage CIImage CGImage