通过PA防火墙API获取防火墙策略

# 需要用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

你可能感兴趣的:(Python,前端,javascript,python,服务器,开发语言)