# 需要用firewall_ip、username、password获取
api_key = None
# 填写以下三项以获取api_key
firewall_ip = None
username = None
password = None
# 获取api key
def get_api_key(firewall_ip, username, password):
api_key_url = f"https://{firewall_ip}/api/?type=keygen&user={username}&password={password}"
response = requests.get(api_key_url, verify=False)
xml_response = ET.fromstring(response.text)
global api_key
api_key = xml_response.find("./result/key").text
return api_key
# 获取防火墙策略
def get_security_policy(firewall_ip, api_key):
export_url = f"https://{firewall_ip}/api/?type=config&action=show&key={api_key}&xpath=/config/devices/entry/vsys/entry/rulebase/security"
policy_response = requests.get(export_url, verify=False)
return policy_response
在请求防火墙策略时需要提供参数api_key,所以要先获取到api_key。这里第一个函数get_api_key(firewall_ip, username, password)即用来实现此功能。get_security_policy(firewall_ip, api_key)函数则是用来获取防火墙策略。
PA的响应结果为XML格式如果需要进行格式转换可以查看:
python转xml为json