2025-06-09 10:17:12 +05:00
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
from typing import Optional, List
|
|
|
|
|
|
|
|
|
|
|
|
class Device(BaseModel):
|
2025-10-21 10:51:32 +05:00
|
|
|
|
"""Модель устройства, обнаруженного в подсети.
|
2025-06-11 17:16:44 +05:00
|
|
|
|
|
|
|
|
|
|
Атрибуты:
|
2025-10-21 10:51:32 +05:00
|
|
|
|
|
|
|
|
|
|
- ``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]): Пользовательская заметка.
|
2025-06-11 17:16:44 +05:00
|
|
|
|
"""
|
2025-06-12 16:32:05 +05:00
|
|
|
|
|
2025-06-09 10:17:12 +05:00
|
|
|
|
ip: str
|
|
|
|
|
|
mac: Optional[str] = None
|
|
|
|
|
|
hostname: Optional[str] = None
|
|
|
|
|
|
vendor: Optional[str] = None
|
2025-06-10 16:19:09 +05:00
|
|
|
|
open_ports: List[str] = []
|
|
|
|
|
|
status: str
|
2025-06-09 10:17:12 +05:00
|
|
|
|
last_seen: Optional[str] = None
|
2025-06-10 16:19:09 +05:00
|
|
|
|
note: Optional[str] = None
|
2025-06-09 10:17:12 +05:00
|
|
|
|
|
|
|
|
|
|
class SubnetScanResult(BaseModel):
|
2025-10-21 10:51:32 +05:00
|
|
|
|
"""Результат сканирования подсети.
|
2025-06-11 17:16:44 +05:00
|
|
|
|
|
|
|
|
|
|
Атрибуты:
|
2025-10-21 10:51:32 +05:00
|
|
|
|
|
|
|
|
|
|
- ``devices`` (List[Device]): Найденные устройства.
|
|
|
|
|
|
- ``error`` (Optional[str]): Сообщение об ошибке сканирования.
|
2025-06-11 17:16:44 +05:00
|
|
|
|
"""
|
2025-06-12 16:32:05 +05:00
|
|
|
|
|
|
|
|
|
|
devices: List[Device] = []
|
2025-07-16 13:27:49 +05:00
|
|
|
|
error: Optional[str] = None
|
2025-07-15 13:07:14 +05:00
|
|
|
|
|
2025-07-04 13:48:38 +05:00
|
|
|
|
class SubnetScanRequest(BaseModel):
|
2025-10-21 10:51:32 +05:00
|
|
|
|
"""Параметры запроса на сканирование подсети.
|
2025-07-04 13:48:38 +05:00
|
|
|
|
|
|
|
|
|
|
Атрибуты:
|
2025-10-21 10:51:32 +05:00
|
|
|
|
|
|
|
|
|
|
- ``subnet`` (Optional[str]): CIDR подсети (например, ``192.168.1.0/24``).
|
2025-07-04 13:48:38 +05:00
|
|
|
|
"""
|
2025-10-21 10:51:32 +05:00
|
|
|
|
subnet: Optional[str] = None
|