Unicode repair
This commit is contained in:
parent
2b8eff58ac
commit
e264750187
49 changed files with 107 additions and 107 deletions
|
|
@ -3,18 +3,18 @@
|
|||
|
||||
Назначение:
|
||||
|
||||
- Обнаружение активных узлов в пределах сетей хоста путём широковещательных ARP‑запросов от имени выбранного интерфейса.
|
||||
- Обнаружение активных узлов в пределах сетей хоста путём широковещательных ARP-запросов от имени выбранного интерфейса.
|
||||
- Помощь сервисам более высокого уровня (например, IPService) при проверке занятости адресов перед применением конфигураций.
|
||||
|
||||
Особенности реализации:
|
||||
|
||||
- Определяет подключённые сети интерфейса через `netifaces` и строит CIDR для сканирования.
|
||||
- Формирует ARP‑пакеты с помощью `scapy` (Ether/ARP) и отправляет их с таймаутом.
|
||||
- Формирует ARP-пакеты с помощью `scapy` (Ether/ARP) и отправляет их с таймаутом.
|
||||
- Добавляет локальный адрес интерфейса в результирующий список клиентов.
|
||||
|
||||
Требования/ограничения:
|
||||
|
||||
- Для отправки ARP‑кадров могут потребоваться повышенные привилегии или capability на сырой сокет.
|
||||
- Для отправки ARP-кадров могут потребоваться повышенные привилегии или capability на сырой сокет.
|
||||
"""
|
||||
from fastapi import Depends
|
||||
from scapy.layers.l2 import ARP, Ether
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
"""
|
||||
Сервис управления подключениями Wi‑Fi через `nmcli`.
|
||||
Сервис управления подключениями Wi-Fi через `nmcli`.
|
||||
|
||||
Назначение:
|
||||
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
Поведение:
|
||||
|
||||
- Автоматически определяет активный Wi‑Fi‑интерфейс.
|
||||
- Автоматически определяет активный Wi-Fi-интерфейс.
|
||||
- Валидирует наличие SSID в листинге перед подключением и интерпретирует частые ошибки `nmcli` (неверный пароль, отсутствующая сеть и т.п.).
|
||||
|
||||
Ограничения:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
"""
|
||||
Сервис для управления firewalld через D‑Bus.
|
||||
Сервис для управления firewalld через D-Bus.
|
||||
|
||||
Назначение:
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
"""
|
||||
Сервис проверки и применения IP‑настроек через NetworkManager (D‑Bus).
|
||||
Сервис проверки и применения IP-настроек через NetworkManager (D-Bus).
|
||||
|
||||
Назначение:
|
||||
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
Требования/ограничения:
|
||||
|
||||
- Доступ к системной шине D‑Bus и права на изменения сетевых профилей.
|
||||
- Доступ к системной шине D-Bus и права на изменения сетевых профилей.
|
||||
- Структура входных данных должна соответствовать схеме `ipv4_updates` для корректного обновления вложенных полей у профиля.
|
||||
"""
|
||||
from typing import Dict, Any
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
"""
|
||||
Сервис чтения сетевого состояния через NetworkManager (D‑Bus).
|
||||
Сервис чтения сетевого состояния через NetworkManager (D-Bus).
|
||||
|
||||
Назначение:
|
||||
|
||||
- Предоставляет асинхронные методы для сборки унифицированных моделей сетевых интерфейсов (Ethernet/Wi‑Fi), их IP‑конфигураций, а также получения имени хоста. Используется API‑слоем для визуализации и управления.
|
||||
- Предоставляет асинхронные методы для сборки унифицированных моделей сетевых интерфейсов (Ethernet/Wi-Fi), их IP-конфигураций, а также получения имени хоста. Используется API-слоем для визуализации и управления.
|
||||
|
||||
Особенности:
|
||||
|
||||
- Фильтрация loopback и явно неактивных интерфейсов.
|
||||
- Адаптация данных D‑Bus в pydantic‑модели (`NetworkInterface`, `WiFiDevice`, `NetworkInterfacesContainer`).
|
||||
- Адаптация данных D-Bus в pydantic-модели (`NetworkInterface`, `WiFiDevice`, `NetworkInterfacesContainer`).
|
||||
"""
|
||||
from typing import List, Dict, Tuple, Union, Optional
|
||||
from sdbus_async.networkmanager import (
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ class NetworkScanner:
|
|||
|
||||
Назначение:
|
||||
Обнаруживает активные устройства в локальной сети, отправляя широковещательные
|
||||
ARP‑запросы по указанной подсети и собирая ответы (IP, MAC).
|
||||
ARP-запросы по указанной подсети и собирая ответы (IP, MAC).
|
||||
|
||||
Детали реализации:
|
||||
- Использует `scapy` (`Ether` + `ARP`) для генерации пакетов и `srp` для
|
||||
|
|
@ -105,7 +105,7 @@ class PortScanner:
|
|||
"""Класс для сканирования открытых портов на устройствах.
|
||||
|
||||
Назначение:
|
||||
Плейсхолдер для будущего функционала активного сканирования TCP/UDP‑портов
|
||||
Плейсхолдер для будущего функционала активного сканирования TCP/UDP-портов
|
||||
у обнаруженных узлов. В текущей версии возвращает пустой список.
|
||||
|
||||
План развития:
|
||||
|
|
@ -144,7 +144,7 @@ class DeviceInfoCollector:
|
|||
Источники данных:
|
||||
- MacLookup: сопоставление префикса MAC (OUI) с названием производителя.
|
||||
- DNS: `gethostbyaddr` с малым таймаутом для обратного разрешения имени.
|
||||
- NetBIOS (nbtscan): опрос сегмента сети для извлечения NetBIOS‑имён.
|
||||
- NetBIOS (nbtscan): опрос сегмента сети для извлечения NetBIOS-имён.
|
||||
|
||||
Политика кэширования:
|
||||
- Результаты `get_vendor` кэшируются с помощью `functools.lru_cache`.
|
||||
|
|
@ -253,7 +253,7 @@ class DeviceStorage:
|
|||
|
||||
Политика очистки:
|
||||
|
||||
- Метод `_clean_old_devices` удаляет оффлайн‑устройства, не наблюдавшиеся более 7 дней,
|
||||
- Метод `_clean_old_devices` удаляет оффлайн-устройства, не наблюдавшиеся более 7 дней,
|
||||
чтобы поддерживать актуальность списка.
|
||||
"""
|
||||
def __init__(self, base_path: str = "storage/subnets", translations: Translations = None):
|
||||
|
|
@ -382,8 +382,8 @@ class SubnetService:
|
|||
1) Определение подсети (вручную или авто по интерфейсу).
|
||||
2) Загрузка ранее сохранённых устройств подсети.
|
||||
3) Добавление локального устройства (если принадлежит подсети).
|
||||
4) ARP‑сканирование и параллельная обработка узлов (обогащение данных).
|
||||
5) Маркировка оффлайн‑узлов из кэша, не встреченных в текущем скане.
|
||||
4) ARP-сканирование и параллельная обработка узлов (обогащение данных).
|
||||
5) Маркировка оффлайн-узлов из кэша, не встреченных в текущем скане.
|
||||
6) Сортировка по IP и сохранение объединённого списка в JSON.
|
||||
"""
|
||||
def __init__(self, translations: Translations):
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ logging.basicConfig(
|
|||
logger = logging.getLogger(__name__)
|
||||
|
||||
class WifiStorage:
|
||||
"""Класс для хранения данных о Wi‑Fi сетях и их заметках по SSID.
|
||||
"""Класс для хранения данных о Wi-Fi сетях и их заметках по SSID.
|
||||
|
||||
Формат:
|
||||
{
|
||||
|
|
@ -71,7 +71,7 @@ class WifiStorage:
|
|||
raise Exception(self.translations.gettext("Ошибка при сохранении заметок: {error}").format(error=str(e)))
|
||||
|
||||
class WifiService:
|
||||
"""Сервис для сканирования текущих Wi‑Fi точек доступа и заметок.
|
||||
"""Сервис для сканирования текущих Wi-Fi точек доступа и заметок.
|
||||
|
||||
Источники данных:
|
||||
- `pywifi` для базового сканирования и получения списка AP.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue