你可以用 API 做很多很酷的事情。管理员可以执行的更常见任务之一是通过一些创造性的脚本访问、更新和更改防火墙的配置, 同时利用 API 的易用性。
与 GUI 和 CLI 一样, 访问 API 需要身份验证。可以使用下面的命令生成身份验证令牌, 方法是采用每个管理员自己的用户名和密码。我们不建议共享此标记。
https://主机名/api/?类型 = 特警和用户 =用户名 > 密码=密码 >
然后, 可以将生成的标记作为类似身份验证标记插入到任何 API 命令中:
/api/?类型 = 配置和操作 = 获取和键 =<key>和 xpath =/配置</key>
上面的命令将返回整个配置文件, 但您也可以将 xpath 筛选为更小、更具体的配置子集:
/api/?类型 = 配置和操作 = 获取和 xpath =/配置/设备
/api/?类型 = 配置和操作 = 获取和 xpath =/配置/配置
/api/?类型 = 配置和操作 = 获取和 xpath =/配置/预定义
/api/?类型 = 配置和操作 = 获取和 xpath =/配置/共享
如果您查看配置 XML, xpath 将变得更有意义:

您可以使用 API 浏览函数查看所有可能的 xpath 选项, 因此您可以构建一个更窄的筛选器以满足您的需要:
/php/rest/浏览. php/配置
若要添加新对象, 请使用 "设置" 操作或 "删除" 来删除对象或 "编辑" 以更改对象:
/api/?类型 = 配置和操作 =设置和键 =<key>和 xpath =/配置/设备/输入/vsys/输入/地址和元素 =<entry name='test'><description>我的降序</description><ip-netmask>1.1.1.1</ip-netmask> </entry> </key>
/api/?类型 = 配置和操作 =删除和键 =<key>和 xpath =/配置/设备/输入/vsys/输入/地址和元素 =<entry name='test'> </entry> </key>
正如您所看到的, 当您开始执行相当简单的操作时, URL 开始变得非常复杂。另一种很酷的方法是通过使用 CLI 调试模式来确定用于某些操作的 xpaths:
>> 调试 cli
(叶标记: cli 值: on) (与
停产匹配:. #t) (cli 处理程序:。调试-cli 处理程序) (上下文-在端插入-p:。#f))
>> 配置
() (
(上下文-在端插入-p:. #t))
输入配置模式
[编辑]
# 设置地址 "test55" 描述 "API 对象" ip-网络掩码 10.0.0.1
(容器标记: 地址容器-标签: 入口键-标记: 名称值: test55 叶标记: 描述值: API 对象叶标记:ip 网络掩码值: 10.0.0.1)
(终止匹配:. #t) (xpath 前缀:。/配置/设备/条目 [@name = ' 本地主机. localdomain ']/vsys/条目 [@name = ' vsys1 ']) (上下文插入到端 p:。#f))
(地址 (@ (名称 test55) (描述 api 对象) (ip 网络掩码 10.0.0.1))) (
条目 (@ (名称 test55)) (描述 api 对象) (ip 网络掩码 10.0.0.1))
这是
<request cmd="set" obj="/config/devices/entry[@name='localhost.localdomain']/vsys/entry[@name='vsys1']/address/entry[@name='test55']" cookie="1285104864936584">
<description>API 对象</description>上面 set 命令中的 XPath<ip-netmask>10.0.0。1</ip-netmask>这是 set 命令中的元素 2016-02-16 16:38:32 命令成功 [编辑] #
</request>
<response status="success" code="20"><msg></msg></response>
如果系统是 multivsys 的, 则需要调整 xml 以反映正确的 vsys, 因此 xpath 将成为:
/配置/设备/条目 [@name = ' 本地主机. localdomain ']/vsys/条目 [@name = ' vsys1 ']/
如果您还没有害怕, 请访问我们的 API 讨论论坛,在这里您将发现许多有趣的主题正在讨论真实世界的用例和使用python或perl 自动化操作的巧妙方法.
请留下评论或类似的, 如果你发现这些信息有帮助。
谢谢你 !
汤姆