Python之DNS域名轮询业务监控
2016-06-15 18:46
495 查看
看了大神天斯的书,特此做学习笔记,实现方式略微不同是python3.5
大部分的DNS解析都是一个域名对应一个IP地址,但是通过DNS轮询可做到一个域名对应多个IP,从而实现最简单且高效的负载均衡。
1, 实现步骤
1) 实现域名的解析,获取域名所有的A记录解析IP列表
2) 对IP列表进行HTTP级别的探测
2, 代码
结果如图
END!
大部分的DNS解析都是一个域名对应一个IP地址,但是通过DNS轮询可做到一个域名对应多个IP,从而实现最简单且高效的负载均衡。
1, 实现步骤
1) 实现域名的解析,获取域名所有的A记录解析IP列表
2) 对IP列表进行HTTP级别的探测
2, 代码
#!/usr/local/bin/python3.5 #-*- coding:utf-8 -*- import dns.resolver import httplib2 iplist = [] appdomain = "www.a.com" def get_iplist(domain=""): try: A = dns.resolver.query(domain,"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) return True def checkip(ip): checkurl = 'http://' + ip + ":80" getcontent = "" httplib2.socket.setdefaulttimeout(5) conn = httplib2.Http() try: resp,getcontent=conn.request(checkurl) finally: if resp['status']== "200": print(ip+"[OK]") else: print(ip+"[Error]") if __name__ == "__main__": if get_iplist(appdomain) and len(iplist) > 0: for ip in iplist: checkip(ip)
结果如图
END!
相关文章推荐
- 从BUG工具redmine上获取数据后借助python模块pycha 画出BUG分析类报表,利用xlsxwriter
- python操作mysql
- Python2 编码
- python编译错误:Ignoring ensurepip failure: pip 8.1.1 requires SSL/TLS
- 在win8环境下如何安装numpy和scipy包
- 基于pycharm的python开发配置
- python环境下使用tab自动补全命令
- python环境下使用tab自动补全命令
- 从零开始:用Python实现KNN算法
- python 内联函数
- python自动生成执行集群操作脚本
- python包的各种安装问题汇总
- 最近在学python web初体验
- Python学习笔记 —— 类
- [ 每日一课】 Python官方文档 1 -- 简介
- python释放内存(2)
- Python 获得命令行参数的方法
- python 释放内存(1)
- Python连接Hive
- Python基本运算符