gonets/SRV/models/subnet.py

48 lines
1.6 KiB
Python
Raw Permalink Normal View History

from pydantic import BaseModel
from typing import Optional, List
class Device(BaseModel):
"""Модель устройства, обнаруженного в подсети.
Атрибуты:
- ``ip`` (str): IP-адрес устройства.
- ``mac`` (Optional[str]): MAC-адрес устройства.
- ``hostname`` (Optional[str]): Имя хоста.
- ``vendor`` (Optional[str]): Производитель оборудования.
- ``open_ports`` (List[str]): Открытые порты.
- ``status`` (str): Состояние устройства (online/offline).
- ``last_seen`` (Optional[str]): Время последнего обнаружения.
- ``note`` (Optional[str]): Пользовательская заметка.
"""
ip: str
mac: Optional[str] = None
hostname: Optional[str] = None
vendor: Optional[str] = None
open_ports: List[str] = []
status: str
last_seen: Optional[str] = None
note: Optional[str] = None
class SubnetScanResult(BaseModel):
"""Результат сканирования подсети.
Атрибуты:
- ``devices`` (List[Device]): Найденные устройства.
- ``error`` (Optional[str]): Сообщение об ошибке сканирования.
"""
devices: List[Device] = []
error: Optional[str] = None
class SubnetScanRequest(BaseModel):
"""Параметры запроса на сканирование подсети.
Атрибуты:
- ``subnet`` (Optional[str]): CIDR подсети (например, ``192.168.1.0/24``).
"""
subnet: Optional[str] = None