Сканирование определенной подсети
This commit is contained in:
parent
be8b724d61
commit
e23e608cac
2 changed files with 16 additions and 9 deletions
|
|
@ -1,6 +1,5 @@
|
|||
from fastapi import APIRouter, HTTPException
|
||||
from typing import List, Dict
|
||||
from models.subnet import SubnetScanResult
|
||||
from fastapi import APIRouter, HTTPException, Body
|
||||
from models.subnet import SubnetScanResult, SubnetScanRequest
|
||||
from models.wifi import WifiScanResult
|
||||
from models.request import NoteRequest, WifiConnectRequest, WifiDisconnectRequest
|
||||
from services.subnet_service import SubnetService
|
||||
|
|
@ -10,17 +9,16 @@ from services.connect_service import WifiConnectionService
|
|||
router = APIRouter()
|
||||
|
||||
@router.get("/devices", response_model=SubnetScanResult)
|
||||
def scan_subnet(subnet: str = "192.168.1.0/24", ports: List[int] = None):
|
||||
def scan_subnet(request: SubnetScanRequest = Body(...)):
|
||||
"""Сканирует локальную подсеть и возвращает данные об устройствах.
|
||||
|
||||
Выполняет сканирование указанной подсети для обнаружения активных устройств
|
||||
с возможностью проверки указанных портов.
|
||||
|
||||
Args:
|
||||
subnet (str, optional): Адрес подсети в формате CIDR (например, "192.168.1.0/24").
|
||||
По умолчанию "192.168.1.0/24".
|
||||
ports (List[int], optional): Список портов для сканирования. По умолчанию None.
|
||||
|
||||
request (SubnetScanResult): Параметры для сканирования подсети.
|
||||
- subnet (str, optional): Подсеть для сканирования (например "192.168.1.0/24").
|
||||
По умолчанию, если subnet пуст, то сканируется подсеть "192.168.1.0/24".
|
||||
Returns:
|
||||
SubnetScanResult: Объект с результатами сканирования (устройства и их данные).
|
||||
|
||||
|
|
@ -29,7 +27,7 @@ def scan_subnet(subnet: str = "192.168.1.0/24", ports: List[int] = None):
|
|||
"""
|
||||
try:
|
||||
subnet_service = SubnetService()
|
||||
result = subnet_service.scan_subnet(subnet, ports)
|
||||
result = subnet_service.scan_subnet(request.subnet)
|
||||
return result
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500, detail=f"Ошибка сканирования: {str(e)}")
|
||||
|
|
|
|||
|
|
@ -36,3 +36,12 @@ class SubnetScanResult(BaseModel):
|
|||
"""
|
||||
|
||||
devices: List[Device] = []
|
||||
|
||||
class SubnetScanRequest(BaseModel):
|
||||
"""
|
||||
Параметры для сканирования подсети
|
||||
|
||||
Атрибуты:
|
||||
subnet (str): Подсеть для сканирования (например 192.168.1.0/24)
|
||||
"""
|
||||
subnet: Optional[str] = "192.168.1.0/24"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue