Unicode repair
This commit is contained in:
parent
2b8eff58ac
commit
e264750187
49 changed files with 107 additions and 107 deletions
|
|
@ -280,7 +280,7 @@
|
|||
|
||||
<span class="sd">Модуль инкапсулирует добавление middleware `CORSMiddleware` со списком</span>
|
||||
<span class="sd">разрешённых источников (origins), характерных для локальной разработки и</span>
|
||||
<span class="sd">типовых портов фронтенда (например, Vite/React на 5173/5174, dev‑серверы).</span>
|
||||
<span class="sd">типовых портов фронтенда (например, Vite/React на 5173/5174, dev-серверы).</span>
|
||||
|
||||
<span class="sd">Использование:</span>
|
||||
<span class="sd"> cors_config = CORSMiddlewareConfig(app)</span>
|
||||
|
|
|
|||
|
|
@ -282,7 +282,7 @@
|
|||
<div class="viewcode-block" id="CLIExecutor">
|
||||
<a class="viewcode-back" href="../../api/core/cli_executor.html#core.cli_executor.CLIExecutor">[docs]</a>
|
||||
<span class="k">class</span><span class="w"> </span><span class="nc">CLIExecutor</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Утилита для безопасного выполнения CLI‑команд.</span>
|
||||
<span class="w"> </span><span class="sd">"""Утилита для безопасного выполнения CLI-команд.</span>
|
||||
|
||||
<span class="sd"> Назначение:</span>
|
||||
<span class="sd"> Инкапсулирует вызов `subprocess.run` и приводит результат к удобному</span>
|
||||
|
|
|
|||
|
|
@ -280,18 +280,18 @@
|
|||
|
||||
<span class="sd">Назначение:</span>
|
||||
|
||||
<span class="sd">- Обнаружение активных узлов в пределах сетей хоста путём широковещательных ARP‑запросов от имени выбранного интерфейса.</span>
|
||||
<span class="sd">- Обнаружение активных узлов в пределах сетей хоста путём широковещательных ARP-запросов от имени выбранного интерфейса.</span>
|
||||
<span class="sd">- Помощь сервисам более высокого уровня (например, IPService) при проверке занятости адресов перед применением конфигураций.</span>
|
||||
|
||||
<span class="sd">Особенности реализации:</span>
|
||||
|
||||
<span class="sd">- Определяет подключённые сети интерфейса через `netifaces` и строит CIDR для сканирования.</span>
|
||||
<span class="sd">- Формирует ARP‑пакеты с помощью `scapy` (Ether/ARP) и отправляет их с таймаутом.</span>
|
||||
<span class="sd">- Формирует ARP-пакеты с помощью `scapy` (Ether/ARP) и отправляет их с таймаутом.</span>
|
||||
<span class="sd">- Добавляет локальный адрес интерфейса в результирующий список клиентов.</span>
|
||||
|
||||
<span class="sd">Требования/ограничения:</span>
|
||||
|
||||
<span class="sd">- Для отправки ARP‑кадров могут потребоваться повышенные привилегии или capability на сырой сокет.</span>
|
||||
<span class="sd">- Для отправки ARP-кадров могут потребоваться повышенные привилегии или capability на сырой сокет.</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="kn">from</span><span class="w"> </span><span class="nn">fastapi</span><span class="w"> </span><span class="kn">import</span> <span class="n">Depends</span>
|
||||
<span class="kn">from</span><span class="w"> </span><span class="nn">scapy.layers.l2</span><span class="w"> </span><span class="kn">import</span> <span class="n">ARP</span><span class="p">,</span> <span class="n">Ether</span>
|
||||
|
|
|
|||
|
|
@ -276,7 +276,7 @@
|
|||
<article role="main" id="furo-main-content">
|
||||
<h1>Source code for services.connect_service</h1><div class="highlight"><pre>
|
||||
<span></span><span class="sd">"""</span>
|
||||
<span class="sd">Сервис управления подключениями Wi‑Fi через `nmcli`.</span>
|
||||
<span class="sd">Сервис управления подключениями Wi-Fi через `nmcli`.</span>
|
||||
|
||||
<span class="sd">Назначение:</span>
|
||||
|
||||
|
|
@ -284,7 +284,7 @@
|
|||
|
||||
<span class="sd">Поведение:</span>
|
||||
|
||||
<span class="sd">- Автоматически определяет активный Wi‑Fi‑интерфейс.</span>
|
||||
<span class="sd">- Автоматически определяет активный Wi-Fi-интерфейс.</span>
|
||||
<span class="sd">- Валидирует наличие SSID в листинге перед подключением и интерпретирует частые ошибки `nmcli` (неверный пароль, отсутствующая сеть и т.п.).</span>
|
||||
|
||||
<span class="sd">Ограничения:</span>
|
||||
|
|
|
|||
|
|
@ -276,7 +276,7 @@
|
|||
<article role="main" id="furo-main-content">
|
||||
<h1>Source code for services.firewalld_service</h1><div class="highlight"><pre>
|
||||
<span></span><span class="sd">"""</span>
|
||||
<span class="sd">Сервис для управления firewalld через D‑Bus.</span>
|
||||
<span class="sd">Сервис для управления firewalld через D-Bus.</span>
|
||||
|
||||
<span class="sd">Назначение:</span>
|
||||
<span class="sd">- Обёртка над интерфейсами `org.fedoraproject.FirewallD1` для выполнения</span>
|
||||
|
|
|
|||
|
|
@ -276,7 +276,7 @@
|
|||
<article role="main" id="furo-main-content">
|
||||
<h1>Source code for services.ip_service</h1><div class="highlight"><pre>
|
||||
<span></span><span class="sd">"""</span>
|
||||
<span class="sd">Сервис проверки и применения IP‑настроек через NetworkManager (D‑Bus).</span>
|
||||
<span class="sd">Сервис проверки и применения IP-настроек через NetworkManager (D-Bus).</span>
|
||||
|
||||
<span class="sd">Назначение:</span>
|
||||
<span class="sd">- Перед применением конфигурации проверяет занятость IP адреса, сканируя сегмент</span>
|
||||
|
|
@ -285,7 +285,7 @@
|
|||
<span class="sd"> выполняет переподключение интерфейса.</span>
|
||||
|
||||
<span class="sd">Требования/ограничения:</span>
|
||||
<span class="sd">- Доступ к системной шине D‑Bus и права на изменения сетевых профилей.</span>
|
||||
<span class="sd">- Доступ к системной шине D-Bus и права на изменения сетевых профилей.</span>
|
||||
<span class="sd">- Структура входных данных должна соответствовать схеме `ipv4_updates` для</span>
|
||||
<span class="sd"> корректного обновления вложенных полей у профиля.</span>
|
||||
<span class="sd">"""</span>
|
||||
|
|
|
|||
|
|
@ -276,16 +276,16 @@
|
|||
<article role="main" id="furo-main-content">
|
||||
<h1>Source code for services.network_service</h1><div class="highlight"><pre>
|
||||
<span></span><span class="sd">"""</span>
|
||||
<span class="sd">Сервис чтения сетевого состояния через NetworkManager (D‑Bus).</span>
|
||||
<span class="sd">Сервис чтения сетевого состояния через NetworkManager (D-Bus).</span>
|
||||
|
||||
<span class="sd">Назначение:</span>
|
||||
<span class="sd">- Предоставляет асинхронные методы для сборки унифицированных моделей</span>
|
||||
<span class="sd"> сетевых интерфейсов (Ethernet/Wi‑Fi), их IP‑конфигураций, а также получения</span>
|
||||
<span class="sd"> имени хоста. Используется API‑слоем для визуализации и управления.</span>
|
||||
<span class="sd"> сетевых интерфейсов (Ethernet/Wi-Fi), их IP-конфигураций, а также получения</span>
|
||||
<span class="sd"> имени хоста. Используется API-слоем для визуализации и управления.</span>
|
||||
|
||||
<span class="sd">Особенности:</span>
|
||||
<span class="sd">- Фильтрация loopback и явно неактивных интерфейсов.</span>
|
||||
<span class="sd">- Адаптация данных D‑Bus в pydantic‑модели (`NetworkInterface`, `WiFiDevice`,</span>
|
||||
<span class="sd">- Адаптация данных D-Bus в pydantic-модели (`NetworkInterface`, `WiFiDevice`,</span>
|
||||
<span class="sd"> `NetworkInterfacesContainer`).</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">List</span><span class="p">,</span> <span class="n">Dict</span><span class="p">,</span> <span class="n">Tuple</span><span class="p">,</span> <span class="n">Union</span><span class="p">,</span> <span class="n">Optional</span>
|
||||
|
|
|
|||
|
|
@ -328,7 +328,7 @@
|
|||
|
||||
<span class="sd"> Назначение:</span>
|
||||
<span class="sd"> Обнаруживает активные устройства в локальной сети, отправляя широковещательные</span>
|
||||
<span class="sd"> ARP‑запросы по указанной подсети и собирая ответы (IP, MAC).</span>
|
||||
<span class="sd"> ARP-запросы по указанной подсети и собирая ответы (IP, MAC).</span>
|
||||
|
||||
<span class="sd"> Детали реализации:</span>
|
||||
<span class="sd"> - Использует `scapy` (`Ether` + `ARP`) для генерации пакетов и `srp` для</span>
|
||||
|
|
@ -393,7 +393,7 @@
|
|||
<span class="w"> </span><span class="sd">"""Класс для сканирования открытых портов на устройствах.</span>
|
||||
|
||||
<span class="sd"> Назначение:</span>
|
||||
<span class="sd"> Плейсхолдер для будущего функционала активного сканирования TCP/UDP‑портов</span>
|
||||
<span class="sd"> Плейсхолдер для будущего функционала активного сканирования TCP/UDP-портов</span>
|
||||
<span class="sd"> у обнаруженных узлов. В текущей версии возвращает пустой список.</span>
|
||||
|
||||
<span class="sd"> План развития:</span>
|
||||
|
|
@ -438,7 +438,7 @@
|
|||
<span class="sd"> Источники данных:</span>
|
||||
<span class="sd"> - MacLookup: сопоставление префикса MAC (OUI) с названием производителя.</span>
|
||||
<span class="sd"> - DNS: `gethostbyaddr` с малым таймаутом для обратного разрешения имени.</span>
|
||||
<span class="sd"> - NetBIOS (nbtscan): опрос сегмента сети для извлечения NetBIOS‑имён.</span>
|
||||
<span class="sd"> - NetBIOS (nbtscan): опрос сегмента сети для извлечения NetBIOS-имён.</span>
|
||||
|
||||
<span class="sd"> Политика кэширования:</span>
|
||||
<span class="sd"> - Результаты `get_vendor` кэшируются с помощью `functools.lru_cache`.</span>
|
||||
|
|
@ -552,13 +552,13 @@
|
|||
<span class="w"> </span><span class="sd">"""Класс для хранения и управления данными об устройствах.</span>
|
||||
|
||||
<span class="sd"> Формат файла подсети:</span>
|
||||
<span class="sd"> JSON‑структура вида</span>
|
||||
<span class="sd"> JSON-структура вида</span>
|
||||
<span class="sd"> {</span>
|
||||
<span class="sd"> "devices": [Device, ...]</span>
|
||||
<span class="sd"> }</span>
|
||||
|
||||
<span class="sd"> Политика очистки:</span>
|
||||
<span class="sd"> - Метод `_clean_old_devices` удаляет оффлайн‑устройства, не наблюдавшиеся</span>
|
||||
<span class="sd"> - Метод `_clean_old_devices` удаляет оффлайн-устройства, не наблюдавшиеся</span>
|
||||
<span class="sd"> более 7 дней, чтобы поддерживать актуальность списка.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">base_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"storage/subnets"</span><span class="p">,</span> <span class="n">translations</span><span class="p">:</span> <span class="n">Translations</span> <span class="o">=</span> <span class="kc">None</span><span class="p">):</span>
|
||||
|
|
@ -699,8 +699,8 @@
|
|||
<span class="sd"> 1) Определение подсети (вручную или авто по интерфейсу).</span>
|
||||
<span class="sd"> 2) Загрузка ранее сохранённых устройств подсети.</span>
|
||||
<span class="sd"> 3) Добавление локального устройства (если принадлежит подсети).</span>
|
||||
<span class="sd"> 4) ARP‑сканирование и параллельная обработка узлов (обогащение данных).</span>
|
||||
<span class="sd"> 5) Маркировка оффлайн‑узлов из кэша, не встреченных в текущем скане.</span>
|
||||
<span class="sd"> 4) ARP-сканирование и параллельная обработка узлов (обогащение данных).</span>
|
||||
<span class="sd"> 5) Маркировка оффлайн-узлов из кэша, не встреченных в текущем скане.</span>
|
||||
<span class="sd"> 6) Сортировка по IP и сохранение объединённого списка в JSON.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">translations</span><span class="p">:</span> <span class="n">Translations</span><span class="p">):</span>
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@
|
|||
<div class="viewcode-block" id="WifiStorage">
|
||||
<a class="viewcode-back" href="../../api/services/wifi_service.html#services.wifi_service.WifiStorage">[docs]</a>
|
||||
<span class="k">class</span><span class="w"> </span><span class="nc">WifiStorage</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для хранения данных о Wi‑Fi сетях и их заметках по SSID.</span>
|
||||
<span class="w"> </span><span class="sd">"""Класс для хранения данных о Wi-Fi сетях и их заметках по SSID.</span>
|
||||
|
||||
<span class="sd"> Формат:</span>
|
||||
<span class="sd"> {</span>
|
||||
|
|
@ -359,7 +359,7 @@
|
|||
<div class="viewcode-block" id="WifiService">
|
||||
<a class="viewcode-back" href="../../api/services/wifi_service.html#services.wifi_service.WifiService">[docs]</a>
|
||||
<span class="k">class</span><span class="w"> </span><span class="nc">WifiService</span><span class="p">:</span>
|
||||
<span class="w"> </span><span class="sd">"""Сервис для сканирования текущих Wi‑Fi точек доступа и заметок.</span>
|
||||
<span class="w"> </span><span class="sd">"""Сервис для сканирования текущих Wi-Fi точек доступа и заметок.</span>
|
||||
|
||||
<span class="sd"> Источники данных:</span>
|
||||
<span class="sd"> - `pywifi` для базового сканирования и получения списка AP.</span>
|
||||
|
|
|
|||
|
|
@ -296,7 +296,7 @@
|
|||
<span class="sd"> где важна минимальная зависимость от внешних сервисов.</span>
|
||||
|
||||
<span class="sd"> Формат данных:</span>
|
||||
<span class="sd"> JSON‑структура вида:</span>
|
||||
<span class="sd"> JSON-структура вида:</span>
|
||||
<span class="sd"> {</span>
|
||||
<span class="sd"> "users": [</span>
|
||||
<span class="sd"> {"id": int, "username": str, "password_hash": str, "is_admin": bool},</span>
|
||||
|
|
|
|||
|
|
@ -293,7 +293,7 @@
|
|||
<span class="sd"> Назначение:</span>
|
||||
<span class="sd"> Лёгкое файловое хранилище для сессионных токенов, сопоставленных с</span>
|
||||
<span class="sd"> `client_id` (например, IP клиента). Предназначено для сред без БД и</span>
|
||||
<span class="sd"> persistent‑кэшей. Обеспечивает базовые операции и авто‑очистку протухших</span>
|
||||
<span class="sd"> persistent-кэшей. Обеспечивает базовые операции и авто-очистку протухших</span>
|
||||
<span class="sd"> сессий.</span>
|
||||
|
||||
<span class="sd"> Формат данных:</span>
|
||||
|
|
|
|||
|
|
@ -280,8 +280,8 @@
|
|||
|
||||
<span class="sd">Содержимое модуля:</span>
|
||||
<span class="sd"> - `get_translations()`: фабрика зависимости FastAPI, считывающая локаль из</span>
|
||||
<span class="sd"> query‑параметра `locale`, cookie `locale` или заголовка `Accept-Language`</span>
|
||||
<span class="sd"> (по приоритету), с дефолтом `ru`. Возвращает функцию‑зависимость, которая</span>
|
||||
<span class="sd"> query-параметра `locale`, cookie `locale` или заголовка `Accept-Language`</span>
|
||||
<span class="sd"> (по приоритету), с дефолтом `ru`. Возвращает функцию-зависимость, которая</span>
|
||||
<span class="sd"> подгружает `babel.support.Translations` из каталога `SRV/locales`.</span>
|
||||
<span class="sd"> - `_()`: удобная обёртка для получения перевода строки с использованием</span>
|
||||
<span class="sd"> текущей локали (или дефолтного `ru`, если контекст запроса не передан).</span>
|
||||
|
|
|
|||
2
SRV/docs/_build/html/api/config/cors.html
vendored
2
SRV/docs/_build/html/api/config/cors.html
vendored
|
|
@ -286,7 +286,7 @@
|
|||
<p>Конфигурация CORS для FastAPI-приложения GONETS.</p>
|
||||
<p>Модуль инкапсулирует добавление middleware <cite>CORSMiddleware</cite> со списком
|
||||
разрешённых источников (origins), характерных для локальной разработки и
|
||||
типовых портов фронтенда (например, Vite/React на 5173/5174, dev‑серверы).</p>
|
||||
типовых портов фронтенда (например, Vite/React на 5173/5174, dev-серверы).</p>
|
||||
<dl class="simple">
|
||||
<dt>Использование:</dt><dd><p>cors_config = CORSMiddlewareConfig(app)
|
||||
cors_config.add_cors_middleware()</p>
|
||||
|
|
|
|||
|
|
@ -287,7 +287,7 @@
|
|||
<dt class="sig sig-object py" id="core.cli_executor.CLIExecutor">
|
||||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">core.cli_executor.</span></span><span class="sig-name descname"><span class="pre">CLIExecutor</span></span><a class="reference internal" href="../../_modules/core/cli_executor.html#CLIExecutor"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#core.cli_executor.CLIExecutor" title="Link to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||||
<p>Утилита для безопасного выполнения CLI‑команд.</p>
|
||||
<p>Утилита для безопасного выполнения CLI-команд.</p>
|
||||
<dl class="simple">
|
||||
<dt>Назначение:</dt><dd><p>Инкапсулирует вызов <cite>subprocess.run</cite> и приводит результат к удобному
|
||||
кортежу (код возврата, stdout) без генерации исключений при ошибках.</p>
|
||||
|
|
|
|||
|
|
@ -286,18 +286,18 @@
|
|||
<p>Сервис низкоуровневого ARP-сканирования локальной сети.</p>
|
||||
<p>Назначение:</p>
|
||||
<ul class="simple">
|
||||
<li><p>Обнаружение активных узлов в пределах сетей хоста путём широковещательных ARP‑запросов от имени выбранного интерфейса.</p></li>
|
||||
<li><p>Обнаружение активных узлов в пределах сетей хоста путём широковещательных ARP-запросов от имени выбранного интерфейса.</p></li>
|
||||
<li><p>Помощь сервисам более высокого уровня (например, IPService) при проверке занятости адресов перед применением конфигураций.</p></li>
|
||||
</ul>
|
||||
<p>Особенности реализации:</p>
|
||||
<ul class="simple">
|
||||
<li><p>Определяет подключённые сети интерфейса через <cite>netifaces</cite> и строит CIDR для сканирования.</p></li>
|
||||
<li><p>Формирует ARP‑пакеты с помощью <cite>scapy</cite> (Ether/ARP) и отправляет их с таймаутом.</p></li>
|
||||
<li><p>Формирует ARP-пакеты с помощью <cite>scapy</cite> (Ether/ARP) и отправляет их с таймаутом.</p></li>
|
||||
<li><p>Добавляет локальный адрес интерфейса в результирующий список клиентов.</p></li>
|
||||
</ul>
|
||||
<p>Требования/ограничения:</p>
|
||||
<ul class="simple">
|
||||
<li><p>Для отправки ARP‑кадров могут потребоваться повышенные привилегии или capability на сырой сокет.</p></li>
|
||||
<li><p>Для отправки ARP-кадров могут потребоваться повышенные привилегии или capability на сырой сокет.</p></li>
|
||||
</ul>
|
||||
<dl class="py class">
|
||||
<dt class="sig sig-object py" id="services.arp_service.NetworkScanner">
|
||||
|
|
|
|||
|
|
@ -283,14 +283,14 @@
|
|||
<article role="main" id="furo-main-content">
|
||||
<section id="module-services.connect_service">
|
||||
<span id="connect-service"></span><h1>Connect Service<a class="headerlink" href="#module-services.connect_service" title="Link to this heading">¶</a></h1>
|
||||
<p>Сервис управления подключениями Wi‑Fi через <cite>nmcli</cite>.</p>
|
||||
<p>Сервис управления подключениями Wi-Fi через <cite>nmcli</cite>.</p>
|
||||
<p>Назначение:</p>
|
||||
<ul class="simple">
|
||||
<li><p>Предоставляет операции подключения/отключения к точкам доступа и проверки текущего статуса, ориентируясь на системный NetworkManager.</p></li>
|
||||
</ul>
|
||||
<p>Поведение:</p>
|
||||
<ul class="simple">
|
||||
<li><p>Автоматически определяет активный Wi‑Fi‑интерфейс.</p></li>
|
||||
<li><p>Автоматически определяет активный Wi-Fi-интерфейс.</p></li>
|
||||
<li><p>Валидирует наличие SSID в листинге перед подключением и интерпретирует частые ошибки <cite>nmcli</cite> (неверный пароль, отсутствующая сеть и т.п.).</p></li>
|
||||
</ul>
|
||||
<p>Ограничения:</p>
|
||||
|
|
|
|||
|
|
@ -283,7 +283,7 @@
|
|||
<article role="main" id="furo-main-content">
|
||||
<section id="module-services.firewalld_service">
|
||||
<span id="firewalld-service"></span><h1>Firewalld Service<a class="headerlink" href="#module-services.firewalld_service" title="Link to this heading">¶</a></h1>
|
||||
<p>Сервис для управления firewalld через D‑Bus.</p>
|
||||
<p>Сервис для управления firewalld через D-Bus.</p>
|
||||
<p>Назначение:
|
||||
- Обёртка над интерфейсами <cite>org.fedoraproject.FirewallD1</cite> для выполнения</p>
|
||||
<blockquote>
|
||||
|
|
|
|||
|
|
@ -283,7 +283,7 @@
|
|||
<article role="main" id="furo-main-content">
|
||||
<section id="module-services.ip_service">
|
||||
<span id="ip-service"></span><h1>IP Service<a class="headerlink" href="#module-services.ip_service" title="Link to this heading">¶</a></h1>
|
||||
<p>Сервис проверки и применения IP‑настроек через NetworkManager (D‑Bus).</p>
|
||||
<p>Сервис проверки и применения IP-настроек через NetworkManager (D-Bus).</p>
|
||||
<p>Назначение:
|
||||
- Перед применением конфигурации проверяет занятость IP адреса, сканируя сегмент</p>
|
||||
<blockquote>
|
||||
|
|
@ -294,7 +294,7 @@
|
|||
выполняет переподключение интерфейса.</p></li>
|
||||
</ul>
|
||||
<p>Требования/ограничения:
|
||||
- Доступ к системной шине D‑Bus и права на изменения сетевых профилей.
|
||||
- Доступ к системной шине D-Bus и права на изменения сетевых профилей.
|
||||
- Структура входных данных должна соответствовать схеме <cite>ipv4_updates</cite> для</p>
|
||||
<blockquote>
|
||||
<div><p>корректного обновления вложенных полей у профиля.</p>
|
||||
|
|
|
|||
|
|
@ -283,16 +283,16 @@
|
|||
<article role="main" id="furo-main-content">
|
||||
<section id="module-services.network_service">
|
||||
<span id="network-service"></span><h1>Network Service<a class="headerlink" href="#module-services.network_service" title="Link to this heading">¶</a></h1>
|
||||
<p>Сервис чтения сетевого состояния через NetworkManager (D‑Bus).</p>
|
||||
<p>Сервис чтения сетевого состояния через NetworkManager (D-Bus).</p>
|
||||
<p>Назначение:
|
||||
- Предоставляет асинхронные методы для сборки унифицированных моделей</p>
|
||||
<blockquote>
|
||||
<div><p>сетевых интерфейсов (Ethernet/Wi‑Fi), их IP‑конфигураций, а также получения
|
||||
имени хоста. Используется API‑слоем для визуализации и управления.</p>
|
||||
<div><p>сетевых интерфейсов (Ethernet/Wi-Fi), их IP-конфигураций, а также получения
|
||||
имени хоста. Используется API-слоем для визуализации и управления.</p>
|
||||
</div></blockquote>
|
||||
<p>Особенности:
|
||||
- Фильтрация loopback и явно неактивных интерфейсов.
|
||||
- Адаптация данных D‑Bus в pydantic‑модели (<cite>NetworkInterface</cite>, <cite>WiFiDevice</cite>,</p>
|
||||
- Адаптация данных D-Bus в pydantic-модели (<cite>NetworkInterface</cite>, <cite>WiFiDevice</cite>,</p>
|
||||
<blockquote>
|
||||
<div><p><cite>NetworkInterfacesContainer</cite>).</p>
|
||||
</div></blockquote>
|
||||
|
|
|
|||
|
|
@ -292,7 +292,7 @@
|
|||
<dt>Источники данных:</dt><dd><ul class="simple">
|
||||
<li><p>MacLookup: сопоставление префикса MAC (OUI) с названием производителя.</p></li>
|
||||
<li><p>DNS: <cite>gethostbyaddr</cite> с малым таймаутом для обратного разрешения имени.</p></li>
|
||||
<li><p>NetBIOS (nbtscan): опрос сегмента сети для извлечения NetBIOS‑имён.</p></li>
|
||||
<li><p>NetBIOS (nbtscan): опрос сегмента сети для извлечения NetBIOS-имён.</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>Политика кэширования:</dt><dd><ul class="simple">
|
||||
|
|
@ -347,7 +347,7 @@
|
|||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||||
<p>Класс для хранения и управления данными об устройствах.</p>
|
||||
<dl>
|
||||
<dt>Формат файла подсети:</dt><dd><p>JSON‑структура вида
|
||||
<dt>Формат файла подсети:</dt><dd><p>JSON-структура вида
|
||||
{</p>
|
||||
<blockquote>
|
||||
<div><p>“devices”: [Device, …]</p>
|
||||
|
|
@ -355,7 +355,7 @@
|
|||
<p>}</p>
|
||||
</dd>
|
||||
<dt>Политика очистки:</dt><dd><ul class="simple">
|
||||
<li><p>Метод <cite>_clean_old_devices</cite> удаляет оффлайн‑устройства, не наблюдавшиеся
|
||||
<li><p>Метод <cite>_clean_old_devices</cite> удаляет оффлайн-устройства, не наблюдавшиеся
|
||||
более 7 дней, чтобы поддерживать актуальность списка.</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
|
|
@ -409,7 +409,7 @@ devices (List[Device]): Список устройств для сохранен
|
|||
<p>Класс для сканирования подсети с использованием ARP-запросов.</p>
|
||||
<dl class="simple">
|
||||
<dt>Назначение:</dt><dd><p>Обнаруживает активные устройства в локальной сети, отправляя широковещательные
|
||||
ARP‑запросы по указанной подсети и собирая ответы (IP, MAC).</p>
|
||||
ARP-запросы по указанной подсети и собирая ответы (IP, MAC).</p>
|
||||
</dd>
|
||||
<dt>Детали реализации:</dt><dd><ul class="simple">
|
||||
<li><p>Использует <cite>scapy</cite> (<cite>Ether</cite> + <cite>ARP</cite>) для генерации пакетов и <cite>srp</cite> для
|
||||
|
|
@ -449,7 +449,7 @@ ARP‑запросы по указанной подсети и собирая о
|
|||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||||
<p>Класс для сканирования открытых портов на устройствах.</p>
|
||||
<dl class="simple">
|
||||
<dt>Назначение:</dt><dd><p>Плейсхолдер для будущего функционала активного сканирования TCP/UDP‑портов
|
||||
<dt>Назначение:</dt><dd><p>Плейсхолдер для будущего функционала активного сканирования TCP/UDP-портов
|
||||
у обнаруженных узлов. В текущей версии возвращает пустой список.</p>
|
||||
</dd>
|
||||
<dt>План развития:</dt><dd><ul class="simple">
|
||||
|
|
@ -489,8 +489,8 @@ ARP‑запросы по указанной подсети и собирая о
|
|||
<li><p>Определение подсети (вручную или авто по интерфейсу).</p></li>
|
||||
<li><p>Загрузка ранее сохранённых устройств подсети.</p></li>
|
||||
<li><p>Добавление локального устройства (если принадлежит подсети).</p></li>
|
||||
<li><p>ARP‑сканирование и параллельная обработка узлов (обогащение данных).</p></li>
|
||||
<li><p>Маркировка оффлайн‑узлов из кэша, не встреченных в текущем скане.</p></li>
|
||||
<li><p>ARP-сканирование и параллельная обработка узлов (обогащение данных).</p></li>
|
||||
<li><p>Маркировка оффлайн-узлов из кэша, не встреченных в текущем скане.</p></li>
|
||||
<li><p>Сортировка по IP и сохранение объединённого списка в JSON.</p></li>
|
||||
</ol>
|
||||
</dd>
|
||||
|
|
|
|||
|
|
@ -287,7 +287,7 @@
|
|||
<dt class="sig sig-object py" id="services.wifi_service.WifiService">
|
||||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">services.wifi_service.</span></span><span class="sig-name descname"><span class="pre">WifiService</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">translations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Translations</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">Depends(translations_dependency)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/services/wifi_service.html#WifiService"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#services.wifi_service.WifiService" title="Link to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||||
<p>Сервис для сканирования текущих Wi‑Fi точек доступа и заметок.</p>
|
||||
<p>Сервис для сканирования текущих Wi-Fi точек доступа и заметок.</p>
|
||||
<dl class="simple">
|
||||
<dt>Источники данных:</dt><dd><ul class="simple">
|
||||
<li><p><cite>pywifi</cite> для базового сканирования и получения списка AP.</p></li>
|
||||
|
|
@ -338,7 +338,7 @@
|
|||
<dt class="sig sig-object py" id="services.wifi_service.WifiStorage">
|
||||
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">services.wifi_service.</span></span><span class="sig-name descname"><span class="pre">WifiStorage</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">storage_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'storage/wifi/wifi.json'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">translations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Translations</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">Depends(translations_dependency)</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/services/wifi_service.html#WifiStorage"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#services.wifi_service.WifiStorage" title="Link to this definition">¶</a></dt>
|
||||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||||
<p>Класс для хранения данных о Wi‑Fi сетях и их заметках по SSID.</p>
|
||||
<p>Класс для хранения данных о Wi-Fi сетях и их заметках по SSID.</p>
|
||||
<dl>
|
||||
<dt>Формат:</dt><dd><dl class="simple">
|
||||
<dt>{</dt><dd><p>“networks”: [{“ssid”: str, “note”: Optional[str]}]</p>
|
||||
|
|
|
|||
|
|
@ -293,7 +293,7 @@
|
|||
без полноценной СУБД. Подходит для встраиваемых окружений и сценариев,
|
||||
где важна минимальная зависимость от внешних сервисов.</p>
|
||||
</dd>
|
||||
<dt>Формат данных:</dt><dd><p>JSON‑структура вида:
|
||||
<dt>Формат данных:</dt><dd><p>JSON-структура вида:
|
||||
{</p>
|
||||
<blockquote>
|
||||
<div><dl class="simple">
|
||||
|
|
|
|||
|
|
@ -291,7 +291,7 @@
|
|||
<dl>
|
||||
<dt>Назначение:</dt><dd><p>Лёгкое файловое хранилище для сессионных токенов, сопоставленных с
|
||||
<cite>client_id</cite> (например, IP клиента). Предназначено для сред без БД и
|
||||
persistent‑кэшей. Обеспечивает базовые операции и авто‑очистку протухших
|
||||
persistent-кэшей. Обеспечивает базовые операции и авто-очистку протухших
|
||||
сессий.</p>
|
||||
</dd>
|
||||
<dt>Формат данных:</dt><dd><dl>
|
||||
|
|
|
|||
4
SRV/docs/_build/html/api/utils/i18n.html
vendored
4
SRV/docs/_build/html/api/utils/i18n.html
vendored
|
|
@ -287,8 +287,8 @@
|
|||
<dl class="simple">
|
||||
<dt>Содержимое модуля:</dt><dd><ul class="simple">
|
||||
<li><p><cite>get_translations()</cite>: фабрика зависимости FastAPI, считывающая локаль из
|
||||
query‑параметра <cite>locale</cite>, cookie <cite>locale</cite> или заголовка <cite>Accept-Language</cite>
|
||||
(по приоритету), с дефолтом <cite>ru</cite>. Возвращает функцию‑зависимость, которая
|
||||
query-параметра <cite>locale</cite>, cookie <cite>locale</cite> или заголовка <cite>Accept-Language</cite>
|
||||
(по приоритету), с дефолтом <cite>ru</cite>. Возвращает функцию-зависимость, которая
|
||||
подгружает <cite>babel.support.Translations</cite> из каталога <cite>SRV/locales</cite>.</p></li>
|
||||
<li><p><cite>_()</cite>: удобная обёртка для получения перевода строки с использованием
|
||||
текущей локали (или дефолтного <cite>ru</cite>, если контекст запроса не передан).</p></li>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue