十堰防火墙控制台 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。返回中不存在的字段前端不显示;应用规则为空显示「未应用」,触发规则为空显示「未触发」。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 ip_info |
| ip | string | 是 | 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未找到 请联系管理员」);③ 匹配到则正常提交,提交后拉取状态与防火墙同步状态返回。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 whitelist_submit |
| domain | string | 是 | 域名 |
| wip | string | 是 | 网站 IPv4(须属于名下产品) |
| purpose | string | 否 | 用途,默认「域名过白」 |
返回示例
{
"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 条分块提交,逐条返回状态与防火墙同步状态。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 whitelist_batch |
| items | json | 是 | 数组:[{"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。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 flow_log |
| ip | string | 是 | IPv4 地址 |
| date | string | 否 | 日期 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}
时间范围:查询前一个月 ~ 查询时刻。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 blackhole |
| ip | string | 是 | 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}
同时返回动态白名单与静态白名单。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 white |
| ip | string | 是 | 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。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 add_white |
| host_ip | string | 是 | 产品 IPv4(白名单挂载产品,即被查询的 IP 自身) |
| start_ip | string | 是 | 要加白的起始 IPv4 |
| type | int | 否 | 0=单IP(默认) 1=IP段 |
| end_ip | string | 条件 | type=1 时必填 |
| remark | string | 否 | 备注 |
返回示例
{
"status": 200,
"msg": "请求成功:ip{203.0.113.99}添加静态白名单成功",
"data": { "ids": ["12345"] }
}
8. 删除静态白名单
GET/POST
api.php?action=del_white&id={id}
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 del_white |
| id | int | 是 | 静态白名单记录ID |
返回示例
{ "status": 200, "msg": "请求成功", "data": null }
9. IP黑名单查询
GET
api.php?action=black&ip={ip}
返回动态黑名单(静态黑名单不对外展示)。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 black |
| ip | string | 是 | IPv4 地址 |
返回示例
{
"status": 200, "msg": "查询成功",
"data": { "count": 0, "list": [] }
}
10. 当前IP解封
GET/POST
api.php?action=unblock&ip={ip}
仅向动态黑名单发起解封请求(静态黑名单不发起解封)。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 unblock |
| ip | string | 是 | 需要解封的 IPv4 地址 |
返回示例
{
"status": 200, "msg": "解封请求已提交",
"data": {
"dynamic": { "ok": true, "msg": "请求成功" }
}
}
11. 过滤规则查询
GET
api.php?action=filter_rules&ip={ip}
按 IP 查询该产品的过滤规则(必填,不允许查询所有产品)。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 filter_rules |
| ip | string | 是 | 产品 IPv4 |
| keywords | string | 否 | 关键字(默认取 ip) |
| status | string | 否 | 状态过滤 |
返回示例
{
"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
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 add_filter_rule |
| ip | string | 是 | 目标产品 IPv4 |
| type | string | 否 | udp=屏蔽UDP(默认) oversea=屏蔽海外 |
返回示例
{ "status": 200, "msg": "屏蔽UDP规则创建成功", "data": { "id": "101" } }
13. 删除过滤规则
GET/POST
api.php?action=del_filter_rule&id={id}
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 del_filter_rule |
| id | int | 是 | 规则ID |
返回示例
{ "status": 200, "msg": "请求成功", "data": null }
14. 应用规则列表
GET
api.php?action=apply_rules&ip={ip}
「拒绝所有」规则已强行过滤:列表不显示,且无法通过接口应用(set_apply_rule 会被 403 拒绝)。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 apply_rules |
| ip | string | 是 | 产品 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
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 set_apply_rule |
| ip | string | 是 | 产品 IPv4 |
| id | int | 是 | 规则ID |
| status | int | 是 | 0=关闭 1=启用 |
返回示例
{ "status": 200, "msg": "设置成功", "data": null }
16. 攻击日志查询
GET
api.php?action=attack_log&ip={ip}&page=1&limit=50
时间范围:查询前一个月 ~ 查询时刻。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 attack_log |
| ip | string | 是 | IPv4 地址 |
| page | int | 否 | 页码,默认 1 |
| limit | int | 否 | 每页条数,默认 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 搜索。推送内容自动解析为结构化字段(共两种:黑洞告警 / 攻击告警),所属对象等原文信息一律过滤不返回。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
| action | string | 是 | 固定值 notice_log |
| ip | string | 是 | IPv4 地址(搜索关键字) |
| page | int | 否 | 页码,默认 1 |
| limit | int | 否 | 每页条数,默认 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 中带详细信息)