diff options
| author | 韩丁康 <[email protected]> | 2024-04-02 10:28:14 +0800 |
|---|---|---|
| committer | 韩丁康 <[email protected]> | 2024-04-02 10:28:14 +0800 |
| commit | 742607a16178109a912d0216664c05c5909195bf (patch) | |
| tree | 68d70c34b530ee5775b28dc68a0cbfc85e7d65c0 | |
| parent | 1f9dd78c39b576332edd9d790908b7d03bab2725 (diff) | |
1. 问题修复
2. 代理信息获取接口定义实现
| -rw-r--r-- | server/apps/agentcomm.py | 56 | ||||
| -rw-r--r-- | server/apps/sysinfo.py | 4 |
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({ |
