# _ * _ 코딩 : UTF-8 _ * _ 수입 json으로 가져 오기 요청을 # 서버 zabbix의 IP 주소 zabbix_ip = "XXX " # 이름 zabbix의 zabbix_user = "XXX " #의 의 암호 zabbix zabbix_pass = "XXX " # zabbix API 인터페이스 주소 URL = " HTTP : // " + zabbix_ip + " : 80 / ZABBIX / api_jsonrpc.php " # 액세스 헤더 정보가 정의에 ZABBIX의 API post_header = { ' 내용 - 형식 ' : ' 파일 응용 프로그램 / JSON ' } # 전화 zabbix API는 정체성을 필요로 토큰 인증 DEF get_auth () : post_data = { " JSONRPC " : " 2.0 " , " 메소드 " : " user.login " , " PARAMS " { " 사용자 " : zabbix_user, " 패스워드 " : zabbix_pass }, " ID " : " 1 " } RET = requests.post (URL 데이터 = json.dumps (post_data) = 헤더 post_header) zabbix_ret = json.loads (ret.text) 인쇄 (zabbix_ret) 의 경우 ' 결과 ' 하지 의 zabbix_ret : 인쇄 ( ' 로그인 오류 ' ) 다른 사람 : 인증 = zabbix_ret.get ( ' 결과 ' ) 복귀 인증 # IP 호스트에 대해 언급 된 ID 위의 정보를 얻으려면 DEF의 get_hostid을 () : hostid_get = { " JSONRPC " : " 2.0 " , " 메소드 " : " host.get " , " PARAMS " { " 출력 " : " 확장 " , " 필터 " { " 호스트 " : host_ip ] } }, " 인증 " : 토큰, " ID " : 2 , } RES2 = requests.post (URL 데이터 = json.dumps (hostid_get) = 헤더 post_header) res3 = res2.json () #에 인쇄 (res3) res4 res3 = [ ' 결과 ' ] HOST_ID = res4 [0] ' 호스트 ID ' ] 복귀 HOST_ID # 호스트 이름 호스트 ID 수정하려면 DEF의 ) (update_hostname를 : hostname_update = { " JSONRPC " : " 2.0 " , " 메소드 " : " host.update " , " PARAMS " { " 호스트 ID " : HOST_ID, " 이름 " : HOST_NAME }, " 정식 " : 토큰, " ID를 " : 3 } res10 = requests.post (URL 데이터 = json.dumps (hostname_update) = 헤더 post_header) res11 = res10.json () #의 인쇄 (res11) 경우 __name__ == ' __main__ ' : '' ' 파일의 내용에 ips.txt : 호스트 이름 1 IP1 호스트 이름이 IP2 호스트 이름 3 IP3 '' 열기 (함께 " ips.txt " , " R " , 인코딩 = " UTF- " )로서 F : 에 대한 라인 에서 F : 라인 = line.split ( " " ) HOST_NAME 줄 = [0] + " . " host_ip 줄 = [1 ] .strip () #에 인쇄 (HOST_NAME) #에 인쇄 (host_ip) 토큰 = get_auth () #에 인쇄 (토큰) HOST_ID = get_hostid () #에 인쇄 (HOST_ID) update_hostname () 인쇄 (HOST_NAME, host_ip, " 已添加完成" )