summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author韩丁康 <[email protected]>2024-04-02 10:28:14 +0800
committer韩丁康 <[email protected]>2024-04-02 10:28:14 +0800
commit742607a16178109a912d0216664c05c5909195bf (patch)
tree68d70c34b530ee5775b28dc68a0cbfc85e7d65c0
parent1f9dd78c39b576332edd9d790908b7d03bab2725 (diff)
1. 问题修复
2. 代理信息获取接口定义实现
-rw-r--r--server/apps/agentcomm.py56
-rw-r--r--server/apps/sysinfo.py4
2 files changed, 51 insertions, 9 deletions
diff --git a/server/apps/agentcomm.py b/server/apps/agentcomm.py
index da79dfd..39ee1d1 100644
--- a/server/apps/agentcomm.py
+++ b/server/apps/agentcomm.py
@@ -1,14 +1,32 @@
# 代理通信与注册接口
-from apiflask import APIBlueprint
-from apiflask.fields import String, Integer
+import random
+
+from apiflask import APIBlueprint, Schema
+from apiflask.fields import String, Integer, List, Nested, Boolean, DateTime
from apiflask.validators import OneOf
+from faker import Faker
+
+fake = Faker("zh_CN")
bp = APIBlueprint("agent", __name__, url_prefix="/agent")
+class agent(Schema):
+ id = String()
+ ipaddr = List(String())
+ atype = String(validate=OneOf(["渗透攻击", "状态感知", "参数感知"]))
+ status = Boolean()
+ idle = Boolean()
+ port = Integer()
+ sys = String()
+ cpu_num = Integer()
+ mem = String()
+ start_time = DateTime()
+
+
# 代理注册接口
@bp.post("/register", )
[email protected]("代理注册接口", "返回分配给代理的编号值")
[email protected]("代理注册接口", "返回分配给代理的编号值", hide=True)
@bp.input({
# 代理类型
"type": String(required=True, validate=OneOf(["gjst", "mbgz", "ztgz"])),
@@ -35,7 +53,31 @@ def task_ret():
@bp.get("/")
[email protected]("代理信息获取接口", hide=True)
-# TODO:代理信息获取接口实现
-def agent_info():
- return "ok"
[email protected]("代理信息获取接口")
+ "page": Integer(load_default=1),
+ "per_page": Integer(load_default=10)
+}, location="query")
+ "agent_data": List(Nested(agent()))
+})
+def agent_info(query_data):
+ per_page = query_data["per_page"]
+ page = query_data["page"]
+ agent_list = []
+ # TODO:接口数据库贯通实现
+ for i in range(per_page):
+ agent_list.append({
+ "id": fake.unique.random_int(),
+ "ipaddr": [fake.ipv4_public(), fake.ipv6()],
+ "atype": fake.word(ext_word_list=["参数感知", "状态感知", "攻击渗透"]),
+ "status": random.choice([True, False]),
+ "idle": random.choice([True, False]),
+ "port": random.randint(1000, 65534),
+ "sys": random.choice(["Linux", "Windows", "Macos"]),
+ "cpu_num": 4,
+ "mem": random.choice(["4", "8", "16", "32"]) + "GB(" + str(
+ '{:.2f}'.format(100 * random.random())) + "%可用)",
+ "start_time": fake.date_time_between(start_date="-1y")})
+
+ return {"agent_data": agent_list}
diff --git a/server/apps/sysinfo.py b/server/apps/sysinfo.py
index ba3a844..839f7a0 100644
--- a/server/apps/sysinfo.py
+++ b/server/apps/sysinfo.py
@@ -90,8 +90,8 @@ def target_date():
@bp.get("/log")
@bp.input({
- "per_page": Integer(default=10),
- "page": Integer(default=1)
+ "per_page": Integer(load_default=10),
+ "page": Integer(load_default=1)
}, location="query")
@bp.doc("系统操作日志获取接口", "返回系统的操作日志")
@bp.output({