十堰防火墙控制台 API 接口文档

通用说明
1. 所有接口均为 GET 方式(除特别说明),返回统一 JSON:{"status":200,"msg":"...","data":{...}};
2. status=200 表示成功,400 参数错误,403 被禁止的操作,500 系统错误;
3. 接口由后端统一处理鉴权与安全验证,调用方无需关心;
4. 黑洞查询 / 攻击日志 的时间范围固定为「查询前一个月 ~ 查询时刻」。

1. IP信息聚合查询

GET api.php?action=ip_info&ip={ip}

聚合流量日志、实时流量、黑名单、静态黑白名单、应用规则、攻击日志等数据。页面展示见 ipinfo.php。返回中不存在的字段前端不显示;应用规则为空显示「未应用」,触发规则为空显示「未触发」。

请求参数

参数名类型必填说明
actionstring是固定值 ip_info
ipstring是IPv4 地址

返回示例

{ "status": 200, "msg": "查询成功", "data": { "ip": "203.0.113.10", "query_time": "2026-09-14 12:00:00", "in_traffic_mbps": 0.31, "in_packets": 457, "out_traffic_mbps": 0, "out_packets": 0, "connect_in": 305, "connect_out": 0, "new_connect_in": 0, "new_connect_out": 0, "in_tcp": 1024, "in_udp": 512, "in_icmp": 64, "drop_traffic_mbps": 0.02, "black_count": 0, "static_black_count": 0, "static_white_count": 1, "applied_rules": ["示例防护规则A"], // 空数组 = 未应用 "trigger_rule": "全局过滤模块:syn flood", // null = 未触发 "protection_name": "FXAS-DX-400G", "protection_count": 0, "attack_count": 12 } }

2. 域名过白(单个提交)

GET/POST api.php?action=whitelist_submit&domain={域名}&wip={网站IP}&purpose={用途}

流程:① 先查该域名是否已过白,已过白直接返回其页面状态与防火墙同步状态(exists=true);② IP 按官方前端逻辑匹配名下产品,未匹配直接拒绝(404「IP未找到 请联系管理员」);③ 匹配到则正常提交,提交后拉取状态与防火墙同步状态返回。

请求参数

参数名类型必填说明
actionstring是固定值 whitelist_submit
domainstring是域名
wipstring是网站 IPv4(须属于名下产品)
purposestring否用途,默认「域名过白」

返回示例

{ "status": 200, "msg": "请求成功", "data": { "exists": false, "record": { "id": 52, "domain": "example.com", "client_ip": "203.0.113.10", "status": 0, "status_text": "待审核", "sync_status": 1, "sync_status_text": "已同步", "icp_beian_status_text": "未备案", "create_time": 1789880612 } } }

3. 域名过白(批量提交)

POST api.php?action=whitelist_batch body: items={"items":[{"domain":"a.com","ip":"1.1.1.1"}]}

逻辑与单个一致:IP 未匹配拒绝(IP未找到 请联系管理员)、已过白跳过并返回状态、其余按每块 20 条分块提交,逐条返回状态与防火墙同步状态。

请求参数

参数名类型必填说明
actionstring是固定值 whitelist_batch
itemsjson是数组:[{"domain":"a.com","ip":"1.1.1.1","purpose":"选填"}]

返回示例

{ "status": 200, "msg": "批量过白完成", "data": { "results": [ { "domain": "a.com", "ip": "203.0.113.10", "ok": true, "exists": false, "msg": "过白提交成功(待审核,防火墙已同步)", "record": { "status": 0, "status_text": "待审核", "sync_status": 1, "sync_status_text": "已同步" } }, { "domain": "b.com", "ip": "203.0.113.99", "ok": false, "exists": false, "msg": "IP未找到 请联系管理员" } ] } }

4. 流量图数据(按日期)

GET api.php?action=flow_log&ip={ip}&date={YYYY-MM-DD}

按日期返回 10 分钟粒度的流量采样(date 不传默认今天)。流量类字段为字节,换算 bps = 字节 × 8。

请求参数

参数名类型必填说明
actionstring是固定值 flow_log
ipstring是IPv4 地址
datestring否日期 YYYY-MM-DD,默认今天

返回示例

{ "status": 200, "msg": "查询成功", "data": { "count": 6, "list": [ { "hour": 0, "minute": 0, "in_size": 270, "out_size": 0, "in_packets": 3, "out_packets": 0, "in_connect": 3, "out_connect": 0, "in_drop_size": 270, "in_drop_packets": 3, "average_connect_in_count": 0, "average_connect_out_count": 0, "time": "2026-09-14" } ] } }

5. 黑洞信息查询

GET api.php?action=blackhole&ip={ip}

时间范围:查询前一个月 ~ 查询时刻。

请求参数

参数名类型必填说明
actionstring是固定值 blackhole
ipstring是IPv4 地址

返回示例

{ "status": 200, "msg": "查询成功", "data": { "count": 1, "list": [ { "id": 98765, "host_ip": "203.0.113.20", "start_time": 1789140142, "end_time": 1789140745, "domainstatus": "Active" } ] } }

6. IP查询白名单

GET api.php?action=white&ip={ip}

同时返回动态白名单与静态白名单。

请求参数

参数名类型必填说明
actionstring是固定值 white
ipstring是IPv4 地址

返回示例

{ "status": 200, "msg": "查询成功", "data": { "dynamic": { "count": 0, "list": [] }, "static": { "count": 1, "list": [ { "id": 12345, "start_ip": "203.0.113.10", "end_ip": "", "type": 0, "remark": "" } ] } } }

7. 添加白名单(静态)

GET/POST api.php?action=add_white&host_ip={产品IP}&start_ip={加白IP}&type=0&remark={备注}

host_ip 决定白名单挂载在哪个产品下;start_ip 为要加白的 IP(可以是任意 IPv4,不要求属于当前账户)。单IP模式(type=0)不需要 end_ip;IP段模式(type=1)必填 end_ip。

请求参数

参数名类型必填说明
actionstring是固定值 add_white
host_ipstring是产品 IPv4(白名单挂载产品,即被查询的 IP 自身)
start_ipstring是要加白的起始 IPv4
typeint否0=单IP(默认) 1=IP段
end_ipstring条件type=1 时必填
remarkstring否备注

返回示例

{ "status": 200, "msg": "请求成功:ip{203.0.113.99}添加静态白名单成功", "data": { "ids": ["12345"] } }

8. 删除静态白名单

GET/POST api.php?action=del_white&id={id}

请求参数

参数名类型必填说明
actionstring是固定值 del_white
idint是静态白名单记录ID

返回示例

{ "status": 200, "msg": "请求成功", "data": null }

9. IP黑名单查询

GET api.php?action=black&ip={ip}

返回动态黑名单(静态黑名单不对外展示)。

请求参数

参数名类型必填说明
actionstring是固定值 black
ipstring是IPv4 地址

返回示例

{ "status": 200, "msg": "查询成功", "data": { "count": 0, "list": [] } }

10. 当前IP解封

GET/POST api.php?action=unblock&ip={ip}

仅向动态黑名单发起解封请求(静态黑名单不发起解封)。

请求参数

参数名类型必填说明
actionstring是固定值 unblock
ipstring是需要解封的 IPv4 地址

返回示例

{ "status": 200, "msg": "解封请求已提交", "data": { "dynamic": { "ok": true, "msg": "请求成功" } } }

11. 过滤规则查询

GET api.php?action=filter_rules&ip={ip}

按 IP 查询该产品的过滤规则(必填,不允许查询所有产品)。

请求参数

参数名类型必填说明
actionstring是固定值 filter_rules
ipstring是产品 IPv4
keywordsstring否关键字(默认取 ip)
statusstring否状态过滤

返回示例

{ "status": 200, "msg": "查询成功", "data": { "count": 1, "list": [ { "id": "101", "name": "UDP", "type": "udp", "action": "deny", "direction": "in", "status": 1, "host_ip": "203.0.113.10" } ] } }

12. 新增过滤规则(屏蔽UDP / 屏蔽海外)

GET/POST api.php?action=add_filter_rule&ip={ip}&type=udp|oversea

请求参数

参数名类型必填说明
actionstring是固定值 add_filter_rule
ipstring是目标产品 IPv4
typestring否udp=屏蔽UDP(默认) oversea=屏蔽海外

返回示例

{ "status": 200, "msg": "屏蔽UDP规则创建成功", "data": { "id": "101" } }

13. 删除过滤规则

GET/POST api.php?action=del_filter_rule&id={id}

请求参数

参数名类型必填说明
actionstring是固定值 del_filter_rule
idint是规则ID

返回示例

{ "status": 200, "msg": "请求成功", "data": null }

14. 应用规则列表

GET api.php?action=apply_rules&ip={ip}

「拒绝所有」规则已强行过滤:列表不显示,且无法通过接口应用(set_apply_rule 会被 403 拒绝)。

请求参数

参数名类型必填说明
actionstring是固定值 apply_rules
ipstring是产品 IPv4

返回示例

{ "status": 200, "msg": "查询成功", "data": { "app_enabled_count": 0, "app_max": 5, "apply_rule_id": "1234", "count": 36, "list": [ { "id": 62, "name": "示例防护规则A", "description": "示例规则描述", "default_port": "", "status": 0 } ] } }

15. 应用规则开关

GET/POST api.php?action=set_apply_rule&ip={ip}&id={id}&status=0|1

请求参数

参数名类型必填说明
actionstring是固定值 set_apply_rule
ipstring是产品 IPv4
idint是规则ID
statusint是0=关闭 1=启用

返回示例

{ "status": 200, "msg": "设置成功", "data": null }

16. 攻击日志查询

GET api.php?action=attack_log&ip={ip}&page=1&limit=50

时间范围:查询前一个月 ~ 查询时刻。

请求参数

参数名类型必填说明
actionstring是固定值 attack_log
ipstring是IPv4 地址
pageint否页码,默认 1
limitint否每页条数,默认 50

返回示例

{ "status": 200, "msg": "查询成功", "data": { "count": 125423, "list": [ { "id": 12345678, "host_ip": "203.0.113.30", "deftype": "全局过滤模块:syn flood", "packet_type": "TCP", "size": "108.02", "duration": "2秒", "start_time": 1789145829, "end_time": 1789145831 } ] } }

17. 历史告警查询

GET api.php?action=notice_log&ip={ip}&limit=50

时间范围固定为「近15天」,按 IP 搜索。推送内容自动解析为结构化字段(共两种:黑洞告警 / 攻击告警),所属对象等原文信息一律过滤不返回。

请求参数

参数名类型必填说明
actionstring是固定值 notice_log
ipstring是IPv4 地址(搜索关键字)
pageint否页码,默认 1
limitint否每页条数,默认 50

返回字段说明

字段黑洞告警攻击告警
type黑洞告警攻击告警
level-紧急 / 重要 / 一般
ip被黑洞 IP服务器 IP
traffic流量 Mbps服务器峰值流量 Mbps
packets包数 pps-
defense_type-防护类型(如 UDP Flood、黑名单)
time发生时间攻击开始时间
status反牵引时间攻击状态 · 攻击方向

返回示例

{ "status": 200, "msg": "查询成功", "data": { "count": 2, "list": [ { "id": 1334612, "type": "黑洞告警", "level": "", "ip": "203.0.113.20", "traffic": "312445.65 Mbps", "packets": "26709977 pps", "defense_type": "", "time": "2026-09-14 02:47:37", "status": "反牵引时间 2026-09-14 02:57:36" }, { "id": 1334511, "type": "攻击告警", "level": "紧急", "ip": "203.0.113.20", "traffic": "74433.9 Mbps", "packets": "", "defense_type": "UDP Flood", "time": "2026-09-14 01:15:56.238", "status": "攻击开始 · 输入" } ] } }

状态码说明

200 成功

400 参数错误(如 IP 非法、缺少必填参数)

403 操作被禁止(如应用「拒绝所有」规则)

500 系统错误(登录失败、上游接口异常等,msg 中带详细信息)