使用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中便可php

相關文章
相關標籤/搜索