下列接口均为公开只读接口,按 IP 查询 SSH 登录攻击与 Web 攻击的明细、统计与榜单。每个接口都能在下方直接填参数调试,也可以按 curl 示例在命令行调用——例如把它接进自己的告警脚本或 nft 封禁脚本。
接口列表
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/me | 返回请求者自身 IP |
| GET | /api/stats | 合并统计(SSH + Web 总计与 ssh/web 拆分) |
| GET | /api/top | 组合榜单:ssh/web 两组各自独立的榜单(各自次数 > 100 的 IP,最多 100 个) |
| GET | /api/ips/me | 按自身 IP 查询合并明细(ssh/web 两个子对象) |
| GET | /api/ips/{ip} | 指定 IP 的合并明细(ssh/web 两个子对象) |
| GET | /api/ssh/stats | SSH 攻击统计(不含 IP) |
| GET | /api/ssh/top | SSH 攻击榜:攻击次数 > 100 的 IP(最多 100 个) |
| GET | /api/ssh/ips/me | 按自身 IP 查询 SSH 汇总与最近 10 条事件 |
| GET | /api/ssh/ips/{ip} | 指定 IP 的 SSH 汇总与最近 10 条事件 |
| GET | /api/web/stats | Web 攻击统计(不含 IP) |
| GET | /api/web/top | Web 攻击榜:攻击次数 > 100 的 IP(最多 100 个) |
| GET | /api/web/ips/me | 按自身 IP 查询 Web 汇总与最近 10 条请求 |
| GET | /api/web/ips/{ip} | 指定 IP 的 Web 汇总与最近 10 条请求明细 |
| POST | /api/auth/register | 注册(用户名 + 口令 + 邮箱)。注册即登录;邮箱验证后才能创建节点 |
| POST | /api/auth/login | 登录,成功后写入会话 cookie(HttpOnly + SameSite=Lax) |
| POST | /api/auth/logout | 登出:删除服务端会话并让浏览器丢掉 cookie |
| GET | /api/auth/me | 当前登录用户(含联系方式与是否已验证);未登录返回 401 |
| POST | /api/auth/verify-email | 用邮件里的 token 完成邮箱验证(链接落地页会 POST 到这里) |
| POST | /api/auth/resend-verification | 重新发送验证邮件 |
| GET | /api/my/summary | 我的节点概览(近 7 天,按节点归属统计) |
| GET | /api/my/nodes | 我的节点列表(含在线状态、公开开关、允许来源与近 7 天攻击数) |
| POST | /api/my/nodes | 创建节点(名称 + 允许来源必填)→ 返回**一次性显示**的部署命令 |
| PATCH | /api/my/nodes/{id} | 改名 / 切换公开 / 改允许来源(原地更新,不轮换 token) |
| DELETE | /api/my/nodes/{id} | 删除节点并禁用其采集 token(历史事件保留) |
| POST | /api/my/nodes/{id}/deploy-code | 重新生成部署命令(旧命令作废,已部署的机器不受影响) |
| POST | /api/my/nodes/{id}/rotate-token | 轮换采集 token(旧 token 立即失效,需重新部署) |
| GET | /api/my/nodes/{id}/attacks | 该节点近 7 天的攻击来源与最近事件(limit 默认 50,最多 200) |
| POST | /api/deploy/exchange | 部署脚本用部署码换取采集 token(无需登录;校验来源 IP,不一致返回 409) |
| GET | /deploy.sh | 一键部署脚本(正文里已注入平台与采集地址) |
| GET | /dl/{file} | agent 发布包下载(仅 xjd-<版本>-<目标平台>.tar.gz 与其 .sha256) |
| GET | /api/nodes | 采集节点列表(仅注册时配置为公开的主机)+ 功能开关(SSH / Web / IP 封禁,null = 该 agent 尚未上报)与在线状态;支持 limit/offset 分页,每页最多 100 条 |
公开接口无需认证;/api/auth/*、/api/my/*、/api/deploy/* 需要相应的登录态或部署码。/api/stats、/api/ips/* 为 SSH + Web 合并结果;/api/top 返回 ssh、web 两组各自独立的榜单;/api/ssh/* 与 /api/web/* 分别只返回对应类型。事件明细不返回 ip、client_ip、hostname;汇总不返回 ip、hostnames。/api/top、/api/ssh/top、/api/web/top 为公开榜单,刻意返回攻击次数 > 100 的 ip。
在线请求
请求:
点击「发送请求」查看响应…