#!/usr/bin/python
# encoding: utf-8
#filename: zabbix_base_api.py
#author: gaohaixiang
#writetime:20190713
import json
# import urllib.request
import urllib2
class zabbix_base_api(object):
def __init__(self,url = "http://192.168.73.9/api_jsonrpc.php" ,header = {"Content-Type": "application/json"}):
self.url = url
self.header = header
# post
def post_request(self,url, data, header):
request = urllib2.Request(url, data, header) #python2使用
result = urllib2.urlopen(request)
#
# request = urllib.request.Request(url, data, header) #python3使用
# result = urllib.request.urlopen(request)
# ccc = result.read()
# print (ccc)
# response = json.loads(ccc)
response = json.loads(result.read())
result.close()
return response
def json_data(self,method,params,authid):
data = json.dumps(
{
"jsonrpc": "2.0",
"method": method,
"params": params,
"auth": authid,
"id": 1
})
request_info = self.post_request(self.url, data.encode('utf-8'), self.header)
return request_info
# 认证信息
def authid(self,user,password): #定json中auth的信息
data = json.dumps(
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": user,
"password": password
},
"id": 1
})
authid = self.post_request(self.url, data.encode('utf-8'), self.header)
try:
return authid['result']
except KeyError:
print ('用户名或密码错误')
exit()
def text_process(self,file):
import re
find = re.compile(r"^#")
text_info = []
# f = open(file,"r",encoding='UTF-8')
f = open(file, "r")
text = f.readlines()
f.close()
for i in text:
if find.search(i.rstrip("\n")) == None:
text_info.append(i.rstrip("\n"))
return text_info
# 注销认证
def login_out(self,authid):
data = json.dumps(
{
"jsonrpc": "2.0",
"method": "user.logout",
"params": [],
"id": 1,
"auth": authid
})
a = self.post_request(self.url, data.encode('utf-8'), self.header)
return '认证信息已注销'
zabbix-API-自定义库
最新推荐文章于 2025-05-30 13:29:49 发布
该博客展示了使用Python实现Zabbix基础API的代码。包含了请求处理、JSON数据生成、认证信息获取、文本处理和注销认证等功能。通过定义类和方法,实现了与Zabbix API的交互,可用于获取认证信息、处理请求等操作。

1708

被折叠的 条评论
为什么被折叠?



