PythonはZABBIX APIを介して、すべてのIPホストを取得します

 

 

#!は/ usr / binに/のenvのpython3 

#コーディング= UTF-8

輸入JSONの
インポート要求が
エラー、urllibはインポート要求を#from、解析

#ベースのURLと必要なヘッダ

#URL =「http://sg-zabbix.upliveapp.com/ ZABBIX / api_jsonrpc.php」

クラスzabbixapi:
'' '获得トークン' ''
デフ__init __(自己)
self.url = 'にhttp:// XXXXXXXX /zabbix/api_jsonrpc.php'
self.headers = { 'Content-Typeの' : 'アプリケーション/ JSON'}
AUTH = {
"JSONRPC": "2.0"、
"方法": "user.login"、
"paramsは":{
"ユーザ": "XXXXX」、###验证
"パスワード": " XXXXX "
}、
"ID":1、
"認証":なし、
}
応答= requests.post(self.url、データ=のjson.dumps(AUTH)、ヘッダ= self.headers)
self.authid = json.loads(応答。テキスト)[ '結果']
#print(self.authid)

###得到所有服务器和IP信息
DEF get_hosts(自己):
#print( "12313")
neirong = {
"JSONRPC": "2.0"、
"方法" "host.get"、
"paramsは":{
"出力":
"ホストID"、
"宿主"
]
"selectInterfaces":[
"interfaceid"、
"IP"
]
}、
"ID":2、
"認証":self.authid
}
データ= json.dumps(neirong)
#print(データ)
応答= requests.post(self.url、データ=のjson.dumps(neirong )、ヘッダ= self.headers)
のdict = json.loads(response.content)
#print(辞書[ '結果'])
データ=辞書[ '結果']
戻り辞書[ '結果']
#print(response.text)
辞書に組み合わさ###、情報を整理情報所望の出力、
DEF getProc(データ):
辞書= {}
リスト=データ
プリント(リスト)
:私リストにするための
ホスト= I [ 'ホスト']
インター= I [ 'インターフェイス']
間におけるjについて:
IP = J [ 'IP' ]
辞書[ホスト] = IPの

リターン辞書


#排序IP列表
DEFのgetData(辞書)
データ=辞書
ip_list = []
)(data.keys におけるキーの:
IP =データ[キー]
ip_list.append(IP)
ip_list =リスト(セット(ip_list))
ip_list.sort()
戻りip_list


#整理输出IP
:DEFのgetGroup(ip_list)
ip_group = {}
IPS = ip_list
IPSにおけるiについて:
プリント(I)

__name__ == "__main__"場合:
P = zabbixapi()
データ= p.get_hosts()
ホスト= getProc(データ)
#print(ホスト)
ip_list =のgetData(ホスト)
のgetGroup(ip_list)

おすすめ

転載: www.cnblogs.com/wangyh702/p/11542088.html