利用Python腳本獲取令牌

6.1 問題

編寫一個get_token.py腳本,實現以下功能:

  1. 編寫get_token函數
  2. 該函數接受zabbix服務器url、用戶名和密碼作爲參數
  3. 函數返回值爲用戶令牌token

6.2 步驟

實現此案例需要按照如下步驟進行。

步驟一:編寫腳本get_token.py,獲取身份令牌

1)從zabbix官方文檔中使用 user.login 方法登錄並獲取身份驗證令牌請求,如圖-8所示:

官方文檔地址如下:

https://www.zabbix.com/documentation/3.4/zh/manual/api/reference/user/login

圖-14

2)編寫get_token.py文件

copytextpop-up

[root@localhost day12]# vim get_token.py
#!/usr/bin/env python3

import requests
import json    # python中的dict類型要轉換爲json格式的數據需要用到json庫

#要訪問的網址
url = 'http://192.168.4.2/zabbix/api_jsonrpc.php'
#請求頭部信息
headers = {'Content-Type': 'application/json-rpc'}
# data是從官方文檔處獲得的
data = {
# API使用的JSON-RPC協議的版本; Zabbix API實現JSON-RPC版本2.0
"jsonrpc": "2.0",
"method": "user.login",    #調用的API方法
# params將被傳遞給API方法的參數
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1    #請求的任意標識符
}
#使用requests發送請求,訪問指定網站,向url發送data請求,r收到的返回響應爲json格式
#將data轉成json格式
r = requests.post(url, headers=headers, data=json.dumps(data))
#將json格式解碼
print(r.json()))
[root@localhost day12]# vim get_token.py
#!/usr/bin/env python3

import requests
import json	# python中的dict類型要轉換爲json格式的數據需要用到json庫

#要訪問的網址
url = 'http://192.168.4.2/zabbix/api_jsonrpc.php'
#請求頭部信息
headers = {'Content-Type': 'application/json-rpc'}
# data是從官方文檔處獲得的
data = {
# API使用的JSON-RPC協議的版本; Zabbix API實現JSON-RPC版本2.0
    "jsonrpc": "2.0",
    "method": "user.login",	#調用的API方法
# params將被傳遞給API方法的參數
    "params": {
        "user": "Admin",
        "password": "zabbix"
    },
    "id": 1	#請求的任意標識符
}
#使用requests發送請求,訪問指定網站,向url發送data請求,r收到的返回響應爲json格式
#將data轉成json格式
r = requests.post(url, headers=headers, data=json.dumps(data))
#將json格式解碼
print(r.json()))

步驟四:測試腳本執行,獲取用戶令牌token

copytextpop-up

[root@localhost day12]# python3 get_token.py
{"jsonrpc": "2.0", "result": "0424bd59b807674191e7d77572075f33", "id": 1}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章