From 40cd2b5b28cc68d2f300b92d11529d85565b882a Mon Sep 17 00:00:00 2001 From: "s.galanskiy" Date: Thu, 3 Jul 2025 13:16:58 +0500 Subject: [PATCH] =?UTF-8?q?=D0=BE=D1=82=D0=BA=D0=B0=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SRV/api/v1/subnet.py | 16 +++++++++------- SRV/models/subnet.py | 16 ++++++++-------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/SRV/api/v1/subnet.py b/SRV/api/v1/subnet.py index 36e759d..43e4d1c 100644 --- a/SRV/api/v1/subnet.py +++ b/SRV/api/v1/subnet.py @@ -1,5 +1,6 @@ -from fastapi import APIRouter, HTTPException, Body -from models.subnet import SubnetScanResult, SubnetScanRequest +from fastapi import APIRouter, HTTPException +from typing import List, Dict +from models.subnet import SubnetScanResult from models.wifi import WifiScanResult from models.request import NoteRequest, WifiConnectRequest, WifiDisconnectRequest from services.subnet_service import SubnetService @@ -9,16 +10,17 @@ from services.connect_service import WifiConnectionService router = APIRouter() @router.get("/devices", response_model=SubnetScanResult) -def scan_subnet(request: SubnetScanRequest = Body(...)): +def scan_subnet(subnet: str = "192.168.1.0/24", ports: List[int] = None): """Сканирует локальную подсеть и возвращает данные об устройствах. Выполняет сканирование указанной подсети для обнаружения активных устройств с возможностью проверки указанных портов. Args: - request (SubnetScanResult): Параметры для сканирования подсети. - - subnet (str, optional): Подсеть для сканирования (например "192.168.1.0/24"). - По умолчанию, если subnet пуст, то сканируется подсеть "192.168.1.0/24". + subnet (str, optional): Адрес подсети в формате CIDR (например, "192.168.1.0/24"). + По умолчанию "192.168.1.0/24". + ports (List[int], optional): Список портов для сканирования. По умолчанию None. + Returns: SubnetScanResult: Объект с результатами сканирования (устройства и их данные). @@ -27,7 +29,7 @@ def scan_subnet(request: SubnetScanRequest = Body(...)): """ try: subnet_service = SubnetService() - result = subnet_service.scan_subnet(request.subnet) + result = subnet_service.scan_subnet(subnet, ports) return result except Exception as e: raise HTTPException(status_code=500, detail=f"Ошибка сканирования: {str(e)}") diff --git a/SRV/models/subnet.py b/SRV/models/subnet.py index f46c9b3..d281cfe 100644 --- a/SRV/models/subnet.py +++ b/SRV/models/subnet.py @@ -37,11 +37,11 @@ class SubnetScanResult(BaseModel): devices: List[Device] = [] -class SubnetScanRequest(BaseModel): - """ - Параметры для сканирования подсети - - Атрибуты: - subnet (str): Подсеть для сканирования (например 192.168.1.0/24) - """ - subnet: Optional[str] = "192.168.1.0/24" +#class SubnetScanRequest(BaseModel): +# """ +# Параметры для сканирования подсети +# +# Атрибуты: +# subnet (str): Подсеть для сканирования (например 192.168.1.0/24) +# """ +# subnet: Optional[str] = "192.168.1.0/24"