zoukankan      html  css  js  c++  java
  • Python之DNS域名轮询业务监控

    看了大神天斯的书,特此做学习笔记,实现方式略微不同是python3.5

    大部分的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!

  • 相关阅读:
    iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)
    iOS开发UI篇—简单介绍静态单元格的使用
    jade反编译
    jade复用
    sublime修改TAB缩进
    jade模板引擎的基本使用
    MongoDB直接执行js脚本
    初识MongoDB
    php练习:每5个商品一排
    MongoDB聚合查询
  • 原文地址:https://www.cnblogs.com/changbo/p/5588589.html
Copyright © 2011-2022 走看看