调用zabbx的api接口,获取zabbix上所有主机的IP和主机名
import requests
import json
import csv
import time
def get_token():
data = {
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": username,
"password": password
},
"id": 0
}
r = requests.get(zaurl, verify=False, headers=header, data=json.dumps(data))
auth = json.loads(r.text)
return auth["result"]
def getHosts(token):
data = {
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host"
],
"selectInterfaces": [
"interfaceid",
"ip"
]
},
"id": 2,
"auth": token,
}
request = requests.post(zaurl, verify=False, headers=header, data=json.dumps(data))
dict = json.loads(request.content)
return dict['result']
if __name__ == "__main__":
zaurl="https://1.1.1.1/zabbix/api_jsonrpc.php"
header = {"Content-Type": "application/json"}
username = "nana"
password = "123"
token = get_token()
hostlist = getHosts(token)
datafile = "zabbix.txt"
fdata = open(datafile,'w')
for i in hostlist:
name = i['host']
hostIP = i['interfaces']
hostip = hostIP[0]["ip"]
fdata.write(name + ' ' + hostip + '\n')
fdata.close()