gonets/SRV/models/subnet.py

47 lines
1.6 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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