• 使用python调用淘宝的ip地址库查询接口结合zabbix判断dnspod域名解析是否正确


    #encoding:utf-8
    import socket
    import requests
    import json
    
    '''
    使用python结合zabbix判断dnspod域名解析是否正确
    
    服务器分国内和国外不同的组(分别部署了一套环境,分配给客户的时候是同一套域名)
    
    拿c.chinasoft.com举例:
    在dnspod中配置了c.chinasoft.com指向的时候分为国内和国外(客户在国内时指向国内服务器,
    在国外时指向国外服务器)
    并且做了d监控(如果解析的地址宕机会自动切换到备用地址)备用地址有国外的服务器ip和国内的服务器ip
    
    问题来了,dnspod有时候会误报,明明服务器是ok的,判断宕机然后自动切换
    且dnspod没有那么智能,无法分辨你宕机的是哪里的IP重新启用的域名指向可能会出现误差,比如把国内的域名指向了国外备用的服务器ip,这样会导致很多问题
    
    所以需要一个监控,来监控这个域名指向的服务器IP是否是解析到了了国内的服务器(在国内做监控)
    '''
    
    def get_city(domain_name):
        ip = socket.gethostbyname(domain_name)
        # 通过淘宝的api查询ip信息
        req = requests.get("http://ip.taobao.com/service/getIpInfo.php?ip={}".format(ip))
        ip_data = json.loads(req.content)
        ip_address = ip_data['data']
    
        are = ''.join([ip_address['country'],ip_address['area'],ip_address['city']])
        return are
    
    if __name__ == "__main__":
        are = get_city('c.chinasoft.com')
    
        # 判断是否在国内
        if are == u'中国华东湖州市' or are == u'中国华东杭州市':
            print 1
        else:
            print 0

    接下来把脚本配置在zabbix中即可

  • 相关阅读:
    洛谷 P5249 [LnOI2019]加特林轮盘赌 概率DP
    c++提高学习笔记——05-c++STLday10
    c++基础学习笔记——04-c++day09
    c++基础学习笔记——04-c++day08
    c++基础学习笔记——04-c++day07
    c++基础学习笔记——04-c++day06
    c++基础学习笔记——04-c++day05
    c++基础学习笔记——04-c++day04
    c++基础学习笔记——04-c++day03
    c++基础学习笔记——04-c++day02
  • 原文地址:https://www.cnblogs.com/reblue520/p/8085830.html
Copyright © 2020-2023  润新知