1 Star 0 Fork 2

solomonren/cisco_api

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
cisco_api_psirt.py 3.65 KB
一键复制 编辑 原始数据 按行查看 历史
现任明教教主-乾颐堂 提交于 2020-07-03 11:08 . final
#!/usr/bin/env python3
# -*- coding=utf-8 -*-
# 本脚由亁颐堂现任明教教主编写,用于乾颐盾Python课程!
# 教主QQ:605658506
# 亁颐堂官网www.qytang.com
# 教主技术进化论拓展你的技术新边疆
# https://ke.qq.com/course/271956?tuin=24199d8a
import requests
from config import CLIENT_ID, CLIENT_PASS
API_TOKEN_URL = "https://cloudsso.cisco.com/as/token.oauth2"
API_GET_IOS_ADVISORIES = "https://api.cisco.com/security/advisories/ios/?version={0}"
API_GET_IOSXE_ADVISORIES = "https://api.cisco.com/security/advisories/iosxe/?version={0}"
API_GET_LAST_ADVISORIES = "https://api.cisco.com/security/advisories/latest/{0}"
API_GET_SIR = "https://api.cisco.com/security/advisories/severity/{0}/firstpublished?startDate={1}&endDate={2}"
# 获取令牌
def get_api_token(url):
response = requests.post(url,
data={"grant_type": "client_credentials",
"client_id": CLIENT_ID,
"client_secret": CLIENT_PASS
},
headers={"Content-Type": "application/x-www-form-urlencoded",
"Accept": "application/json",
})
if response is not None and response.status_code == 200:
return response.json()
else:
print(response.status_code)
return None
# 查询IOSXE的安全BUG
def get_iosxe_advisories_by_release(client_token, ver):
response = requests.get(API_GET_IOSXE_ADVISORIES.format(ver),
headers={"Authorization": f"Bearer {client_token}",
"Accept": "application/json"})
return response.json()
# 查询IOS的安全BUG
def get_ios_advisories_by_release(client_token, ver):
response = requests.get(API_GET_IOS_ADVISORIES.format(ver),
headers={f"Authorization": f"Bearer {client_token}",
"Accept": "application/json"})
return response.json()
# 查询最新的安全公告
def last_advisories(client_token, counts):
response = requests.get(API_GET_LAST_ADVISORIES.format(counts),
headers={f"Authorization": f"Bearer {client_token}",
"Accept": "application/json"})
return response.json()
# 查询特定时间范围, 特定级别的安全公告
def advisories_severity(client_token, severity, start_date, end_date):
response = requests.get(API_GET_SIR.format(severity, start_date, end_date),
headers={f"Authorization": f"Bearer {client_token}",
"Accept": "application/json"})
return response.json()
if __name__ == '__main__':
raw_token = get_api_token(API_TOKEN_URL)
token = raw_token.get('access_token')
# 查询IOSXE Bug
result_dict = get_iosxe_advisories_by_release(token, "03.06.06.E")
for x in result_dict.get("advisories"):
print(x.get("advisoryId"), x.get("bugIDs"), x.get("cves"), x.get("firstPublished"), x.get("sir"))
# 查询IOS Bug
result_dict = get_ios_advisories_by_release(token, "15.2(4)M6")
for x in result_dict.get("advisories"):
print(x.get("advisoryId"), x.get("bugIDs"), x.get("cves"), x.get("firstPublished"), x.get("sir"))
# 查看特定级别的BUG
result_dict = advisories_severity(token, "critical", "2020-01-01", "2020-05-01")
for x in result_dict.get("advisories"):
print(x.get("advisoryId"), x.get("bugIDs"), x.get("cves"), x.get("firstPublished"), x.get("sir"))
# 查新最新的advisories
result_dict = last_advisories(token, 1)
print(result_dict)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/solomonren/cisco_api.git
git@gitee.com:solomonren/cisco_api.git
solomonren
cisco_api
cisco_api
master

搜索帮助