711 lines
No EOL
55 KiB
HTML
711 lines
No EOL
55 KiB
HTML
<!doctype html>
|
||
<html class="no-js" lang="en" data-content_root="../../">
|
||
<head><meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<link rel="index" title="Index" href="../../genindex.html"><link rel="search" title="Search" href="../../search.html"><link rel="next" title="UFW Service" href="ufw_service.html"><link rel="prev" title="Settings Service" href="settings_service.html">
|
||
|
||
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25 -->
|
||
<title>Subnet Service - GONETS SRV 0.0.3 documentation</title>
|
||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=d111a655" />
|
||
<link rel="stylesheet" type="text/css" href="../../_static/styles/furo.css?v=580074bf" />
|
||
<link rel="stylesheet" type="text/css" href="../../_static/styles/furo-extensions.css?v=8dab3a3b" />
|
||
|
||
|
||
|
||
|
||
<style>
|
||
body {
|
||
--color-code-background: #f2f2f2;
|
||
--color-code-foreground: #1e1e1e;
|
||
|
||
}
|
||
@media not print {
|
||
body[data-theme="dark"] {
|
||
--color-code-background: #202020;
|
||
--color-code-foreground: #d0d0d0;
|
||
|
||
}
|
||
@media (prefers-color-scheme: dark) {
|
||
body:not([data-theme="light"]) {
|
||
--color-code-background: #202020;
|
||
--color-code-foreground: #d0d0d0;
|
||
|
||
}
|
||
}
|
||
}
|
||
</style></head>
|
||
<body>
|
||
|
||
<script>
|
||
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
|
||
</script>
|
||
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
|
||
<symbol id="svg-toc" viewBox="0 0 24 24">
|
||
<title>Contents</title>
|
||
<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024">
|
||
<path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z"/>
|
||
</svg>
|
||
</symbol>
|
||
<symbol id="svg-menu" viewBox="0 0 24 24">
|
||
<title>Menu</title>
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
||
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu">
|
||
<line x1="3" y1="12" x2="21" y2="12"></line>
|
||
<line x1="3" y1="6" x2="21" y2="6"></line>
|
||
<line x1="3" y1="18" x2="21" y2="18"></line>
|
||
</svg>
|
||
</symbol>
|
||
<symbol id="svg-arrow-right" viewBox="0 0 24 24">
|
||
<title>Expand</title>
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
||
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right">
|
||
<polyline points="9 18 15 12 9 6"></polyline>
|
||
</svg>
|
||
</symbol>
|
||
<symbol id="svg-sun" viewBox="0 0 24 24">
|
||
<title>Light mode</title>
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
||
stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="feather-sun">
|
||
<circle cx="12" cy="12" r="5"></circle>
|
||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||
</svg>
|
||
</symbol>
|
||
<symbol id="svg-moon" viewBox="0 0 24 24">
|
||
<title>Dark mode</title>
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
||
stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon">
|
||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
|
||
</svg>
|
||
</symbol>
|
||
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
|
||
<title>Auto light/dark, in light mode</title>
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
||
stroke-width="1" stroke-linecap="round" stroke-linejoin="round"
|
||
class="icon-custom-derived-from-feather-sun-and-tabler-moon">
|
||
<path style="opacity: 50%" d="M 5.411 14.504 C 5.471 14.504 5.532 14.504 5.591 14.504 C 3.639 16.319 4.383 19.569 6.931 20.352 C 7.693 20.586 8.512 20.551 9.25 20.252 C 8.023 23.207 4.056 23.725 2.11 21.184 C 0.166 18.642 1.702 14.949 4.874 14.536 C 5.051 14.512 5.231 14.5 5.411 14.5 L 5.411 14.504 Z"/>
|
||
<line x1="14.5" y1="3.25" x2="14.5" y2="1.25"/>
|
||
<line x1="14.5" y1="15.85" x2="14.5" y2="17.85"/>
|
||
<line x1="10.044" y1="5.094" x2="8.63" y2="3.68"/>
|
||
<line x1="19" y1="14.05" x2="20.414" y2="15.464"/>
|
||
<line x1="8.2" y1="9.55" x2="6.2" y2="9.55"/>
|
||
<line x1="20.8" y1="9.55" x2="22.8" y2="9.55"/>
|
||
<line x1="10.044" y1="14.006" x2="8.63" y2="15.42"/>
|
||
<line x1="19" y1="5.05" x2="20.414" y2="3.636"/>
|
||
<circle cx="14.5" cy="9.55" r="3.6"/>
|
||
</svg>
|
||
</symbol>
|
||
<symbol id="svg-moon-with-sun" viewBox="0 0 24 24">
|
||
<title>Auto light/dark, in dark mode</title>
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
||
stroke-width="1" stroke-linecap="round" stroke-linejoin="round"
|
||
class="icon-custom-derived-from-feather-sun-and-tabler-moon">
|
||
<path d="M 8.282 7.007 C 8.385 7.007 8.494 7.007 8.595 7.007 C 5.18 10.184 6.481 15.869 10.942 17.24 C 12.275 17.648 13.706 17.589 15 17.066 C 12.851 22.236 5.91 23.143 2.505 18.696 C -0.897 14.249 1.791 7.786 7.342 7.063 C 7.652 7.021 7.965 7 8.282 7 L 8.282 7.007 Z"/>
|
||
<line style="opacity: 50%" x1="18" y1="3.705" x2="18" y2="2.5"/>
|
||
<line style="opacity: 50%" x1="18" y1="11.295" x2="18" y2="12.5"/>
|
||
<line style="opacity: 50%" x1="15.316" y1="4.816" x2="14.464" y2="3.964"/>
|
||
<line style="opacity: 50%" x1="20.711" y1="10.212" x2="21.563" y2="11.063"/>
|
||
<line style="opacity: 50%" x1="14.205" y1="7.5" x2="13.001" y2="7.5"/>
|
||
<line style="opacity: 50%" x1="21.795" y1="7.5" x2="23" y2="7.5"/>
|
||
<line style="opacity: 50%" x1="15.316" y1="10.184" x2="14.464" y2="11.036"/>
|
||
<line style="opacity: 50%" x1="20.711" y1="4.789" x2="21.563" y2="3.937"/>
|
||
<circle style="opacity: 50%" cx="18" cy="7.5" r="2.169"/>
|
||
</svg>
|
||
</symbol>
|
||
<symbol id="svg-pencil" viewBox="0 0 24 24">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
||
stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-pencil-code">
|
||
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
|
||
<path d="M13.5 6.5l4 4" />
|
||
<path d="M20 21l2 -2l-2 -2" />
|
||
<path d="M17 17l-2 2l2 2" />
|
||
</svg>
|
||
</symbol>
|
||
<symbol id="svg-eye" viewBox="0 0 24 24">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
||
stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-eye-code">
|
||
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||
<path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
|
||
<path
|
||
d="M11.11 17.958c-3.209 -.307 -5.91 -2.293 -8.11 -5.958c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6c-.21 .352 -.427 .688 -.647 1.008" />
|
||
<path d="M20 21l2 -2l-2 -2" />
|
||
<path d="M17 17l-2 2l2 2" />
|
||
</svg>
|
||
</symbol>
|
||
</svg>
|
||
|
||
<input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation" aria-label="Toggle site navigation sidebar">
|
||
<input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc" aria-label="Toggle table of contents sidebar">
|
||
<label class="overlay sidebar-overlay" for="__navigation"></label>
|
||
<label class="overlay toc-overlay" for="__toc"></label>
|
||
|
||
<a class="skip-to-content muted-link" href="#furo-main-content">Skip to content</a>
|
||
|
||
|
||
|
||
<div class="page">
|
||
<header class="mobile-header">
|
||
<div class="header-left">
|
||
<label class="nav-overlay-icon" for="__navigation">
|
||
<span class="icon"><svg><use href="#svg-menu"></use></svg></span>
|
||
</label>
|
||
</div>
|
||
<div class="header-center">
|
||
<a href="../../index.html"><div class="brand">GONETS SRV 0.0.3 documentation</div></a>
|
||
</div>
|
||
<div class="header-right">
|
||
<div class="theme-toggle-container theme-toggle-header">
|
||
<button class="theme-toggle" aria-label="Toggle Light / Dark / Auto color theme">
|
||
<svg class="theme-icon-when-auto-light"><use href="#svg-sun-with-moon"></use></svg>
|
||
<svg class="theme-icon-when-auto-dark"><use href="#svg-moon-with-sun"></use></svg>
|
||
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
|
||
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
|
||
</button>
|
||
</div>
|
||
<label class="toc-overlay-icon toc-header-icon no-toc" for="__toc">
|
||
<span class="icon"><svg><use href="#svg-toc"></use></svg></span>
|
||
</label>
|
||
</div>
|
||
</header>
|
||
<aside class="sidebar-drawer">
|
||
<div class="sidebar-container">
|
||
|
||
<div class="sidebar-sticky"><a class="sidebar-brand" href="../../index.html">
|
||
|
||
<span class="sidebar-brand-text">GONETS SRV 0.0.3 documentation</span>
|
||
|
||
</a><form class="sidebar-search-container" method="get" action="../../search.html" role="search">
|
||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||
<input type="hidden" name="check_keywords" value="yes">
|
||
<input type="hidden" name="area" value="default">
|
||
</form>
|
||
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
|
||
<p class="caption" role="heading"><span class="caption-text">Разделы</span></p>
|
||
<ul class="current">
|
||
<li class="toctree-l1 current has-children"><a class="reference internal" href="../services.html">Сервисы</a><input aria-label="Toggle navigation of Сервисы" checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul class="current">
|
||
<li class="toctree-l2"><a class="reference internal" href="arp_service.html">ARP Service</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="auth_service.html">Auth Service</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="connect_service.html">Connect Service</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="firewalld_service.html">Firewalld Service</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="ip_service.html">IP Service</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="network_service.html">Network Service</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="settings_service.html">Settings Service</a></li>
|
||
<li class="toctree-l2 current current-page"><a class="current reference internal" href="#">Subnet Service</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="ufw_service.html">UFW Service</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="wifi_service.html">Wifi Service</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1 has-children"><a class="reference internal" href="../models.html">Модели</a><input aria-label="Toggle navigation of Модели" class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="../models/auth.html">models.auth</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../models/network.html">models.network</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../models/request.html">models.request</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../models/subnet.html">models.subnet</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../models/ufw.html">models.ufw</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../models/wifi.html">models.wifi</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1 has-children"><a class="reference internal" href="../endpoints.html">API эндпоинты</a><input aria-label="Toggle navigation of API эндпоинты" class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" role="switch" type="checkbox"/><label for="toctree-checkbox-3"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="../endpoints/auth.html">api.v1.auth</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../endpoints/ip.html">api.v1.ip</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../endpoints/network.html">api.v1.network</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../endpoints/settings.html">api.v1.settings</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../endpoints/subnet.html">api.v1.subnet</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../endpoints/ufw.html">api.v1.ufw</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../endpoints/websocket.html">api.v1.websocket</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1 has-children"><a class="reference internal" href="../config.html">Конфигурация</a><input aria-label="Toggle navigation of Конфигурация" class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" role="switch" type="checkbox"/><label for="toctree-checkbox-4"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="../config/cors.html">config.cors</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../config/init_config.html">config.init_config</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../config/ports.html">config.ports</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1 has-children"><a class="reference internal" href="../core.html">Core</a><input aria-label="Toggle navigation of Core" class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" role="switch" type="checkbox"/><label for="toctree-checkbox-5"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="../core/cli_executor.html">core.cli_executor</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1 has-children"><a class="reference internal" href="../storage.html">Хранилища</a><input aria-label="Toggle navigation of Хранилища" class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" role="switch" type="checkbox"/><label for="toctree-checkbox-6"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="../storage/json_storage.html">storage.json_storage</a></li>
|
||
<li class="toctree-l2"><a class="reference internal" href="../storage/session_storage.html">storage.session_storage</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1 has-children"><a class="reference internal" href="../utils.html">Утилиты</a><input aria-label="Toggle navigation of Утилиты" class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" role="switch" type="checkbox"/><label for="toctree-checkbox-7"><span class="icon"><svg><use href="#svg-arrow-right"></use></svg></span></label><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="../utils/i18n.html">utils.i18n</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</aside>
|
||
<div class="main">
|
||
<div class="content">
|
||
<div class="article-container">
|
||
<a href="#" class="back-to-top muted-link">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||
<path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path>
|
||
</svg>
|
||
<span>Back to top</span>
|
||
</a>
|
||
<div class="content-icon-container">
|
||
<div class="view-this-page">
|
||
<a class="muted-link" href="../../_sources/api/services/subnet_service.rst.txt" title="View this page">
|
||
<svg><use href="#svg-eye"></use></svg>
|
||
<span class="visually-hidden">View this page</span>
|
||
</a>
|
||
</div>
|
||
<div class="theme-toggle-container theme-toggle-content">
|
||
<button class="theme-toggle" aria-label="Toggle Light / Dark / Auto color theme">
|
||
<svg class="theme-icon-when-auto-light"><use href="#svg-sun-with-moon"></use></svg>
|
||
<svg class="theme-icon-when-auto-dark"><use href="#svg-moon-with-sun"></use></svg>
|
||
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
|
||
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
|
||
</button>
|
||
</div>
|
||
<label class="toc-overlay-icon toc-content-icon no-toc" for="__toc">
|
||
<span class="icon"><svg><use href="#svg-toc"></use></svg></span>
|
||
</label>
|
||
</div>
|
||
<article role="main" id="furo-main-content">
|
||
<section id="subnet-service">
|
||
<h1>Subnet Service<a class="headerlink" href="#subnet-service" title="Link to this heading">¶</a></h1>
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py">
|
||
<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.subnet_service.</span></span><span class="sig-name descname"><span class="pre">DeviceInfoCollector</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></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/services/subnet_service.html#DeviceInfoCollector"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<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><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>
|
||
</ul>
|
||
</dd>
|
||
<dt>Политика кэширования:</dt><dd><ul class="simple">
|
||
<li><p>Результаты <cite>get_vendor</cite> кэшируются с помощью <cite>functools.lru_cache</cite>.</p></li>
|
||
<li><p>Результаты <cite>nbtscan</cite> аккумулируются в словарях <cite>nbtscan_cache</cite>/<cite>nbtscan_results</cite>
|
||
на время жизни экземпляра.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py">
|
||
<span class="sig-name descname"><span class="pre">get_hostname</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ip</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/services/subnet_service.html#DeviceInfoCollector.get_hostname"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<dd><p>Получает хостнейм для указанного IP-адреса.</p>
|
||
<p>Пробует сначала DNS, затем NetBIOS.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>ip</strong> (<em>str</em>) – IP-адрес устройства.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>Хостнейм или None, если не удалось определить.</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>Optional[str]</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py">
|
||
<span class="sig-name descname"><span class="pre">get_vendor</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mac</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="reference internal" href="../../_modules/services/subnet_service.html#DeviceInfoCollector.get_vendor"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<dd><p>Получает вендора устройства по MAC-адресу.</p>
|
||
<p>Использует кэширование для повышения производительности.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>mac</strong> (<em>str</em>) – MAC-адрес устройства.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>Название вендора или “Неизвестный” в случае ошибки.</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>str</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py">
|
||
<span class="sig-name descname"><span class="pre">scan_nbtscan</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">subnet</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/services/subnet_service.html#DeviceInfoCollector.scan_nbtscan"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<dd><p>Сканирует подсеть с помощью nbtscan для получения хостнеймов.</p>
|
||
<p>Сохраняет результаты в кэш и логирует процесс.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>subnet</strong> (<em>str</em>) – Подсеть в формате CIDR.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py">
|
||
<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.subnet_service.</span></span><span class="sig-name descname"><span class="pre">DeviceStorage</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">base_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/subnets'</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">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/services/subnet_service.html#DeviceStorage"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||
<p>Класс для хранения и управления данными об устройствах.</p>
|
||
<p>Формат файла подсети:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
|
||
<span class="s2">"devices"</span><span class="p">:</span> <span class="p">[</span><span class="n">Device</span><span class="p">,</span> <span class="o">...</span><span class="p">]</span>
|
||
<span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>Политика очистки:</p>
|
||
<ul class="simple">
|
||
<li><p>Метод <cite>_clean_old_devices</cite> удаляет оффлайн-устройства, не наблюдавшиеся более 7 дней,
|
||
чтобы поддерживать актуальность списка.</p></li>
|
||
</ul>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py">
|
||
<span class="sig-name descname"><span class="pre">get_subnet_file</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">subnet</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Path</span></span></span><a class="reference internal" href="../../_modules/services/subnet_service.html#DeviceStorage.get_subnet_file"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<dd><p>Возвращает путь к файлу для конкретной подсети.</p>
|
||
<p>Заменяет символы ‘/’ на ‘_’ для корректного имени файла.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>subnet</strong> (<em>str</em>) – Подсеть в формате CIDR.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>Путь к файлу.</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>Path</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py">
|
||
<span class="sig-name descname"><span class="pre">load_devices</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">subnet</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Device</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../../_modules/services/subnet_service.html#DeviceStorage.load_devices"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<dd><p>Загружает устройства для указанной подсети.</p>
|
||
<p>Читает данные из JSON-файла и фильтрует устаревшие устройства.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>subnet</strong> (<em>str</em>) – Подсеть в формате CIDR.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>Словарь устройств с MAC как ключом.</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>Dict[str, Device]</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py">
|
||
<span class="sig-name descname"><span class="pre">save_devices</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">subnet</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">devices</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">Device</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../../_modules/services/subnet_service.html#DeviceStorage.save_devices"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<dd><p>Сохраняет устройства для указанной подсети.</p>
|
||
<p>Записывает данные в JSON-файл.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>subnet</strong> (<em>str</em>) – Подсеть в формате CIDR.</p></li>
|
||
<li><p><strong>devices</strong> (<em>List</em><em>[</em><em>Device</em><em>]</em>) – Список устройств для сохранения.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Raises<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><strong>Exception</strong> – Если произошла ошибка при сохранении.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py">
|
||
<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.subnet_service.</span></span><span class="sig-name descname"><span class="pre">NetworkScanner</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">interface</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</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></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/services/subnet_service.html#NetworkScanner"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
|
||
<p>Класс для сканирования подсети с использованием ARP-запросов.</p>
|
||
<dl class="simple">
|
||
<dt>Назначение:</dt><dd><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> для
|
||
отправки/получения на канальном уровне от имени заданного интерфейса.</p></li>
|
||
<li><p>Таймаут ожидания ответа короткий (2 секунды), ориентирован на интерактивные
|
||
сценарии UI.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt>Ограничения и замечания:</dt><dd><ul class="simple">
|
||
<li><p>Требуются права для отправки низкоуровневых пакетов (capabilities/root).</p></li>
|
||
<li><p>В сетях с фильтрацией широковещания количество обнаруженных устройств
|
||
может быть ограничено.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py">
|
||
<span class="sig-name descname"><span class="pre">scan</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">subnet</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../../_modules/services/subnet_service.html#NetworkScanner.scan"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<dd><p>Сканирует подсеть с использованием ARP-запросов.</p>
|
||
<p>Отправляет ARP-пакеты для обнаружения активных устройств и возвращает
|
||
список кортежей (IP, MAC).</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>subnet</strong> (<em>str</em>) – Подсеть в формате CIDR (например, “10.1.1.0/24”).</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>Список кортежей (IP-адрес, MAC-адрес) обнаруженных устройств.</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>List[Tuple[str, str]]</p>
|
||
</dd>
|
||
<dt class="field-even">Raises<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><strong>Exception</strong> – Если произошла ошибка сканирования.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py">
|
||
<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.subnet_service.</span></span><span class="sig-name descname"><span class="pre">PortScanner</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">interface</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</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></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/services/subnet_service.html#PortScanner"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<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-портов
|
||
у обнаруженных узлов. В текущей версии возвращает пустой список.</p>
|
||
</dd>
|
||
<dt>План развития:</dt><dd><ul class="simple">
|
||
<li><p>Добавить неблокирующее сканирование наиболее распространённых портов
|
||
(22, 80, 443 и т.д.) с ограничением по времени.</p></li>
|
||
<li><p>Настраиваемые профили глубины и скорости сканирования.</p></li>
|
||
</ul>
|
||
</dd>
|
||
</dl>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py">
|
||
<span class="sig-name descname"><span class="pre">scan</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ip</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../../_modules/services/subnet_service.html#PortScanner.scan"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<dd><p>Сканирует открытые порты на указанном IP-адресе.</p>
|
||
<p>Пока возвращает пустой список, так как функциональность не реализована.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>ip</strong> (<em>str</em>) – IP-адрес устройства для сканирования.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>Список открытых портов (пока пустой).</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>List[str]</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py class">
|
||
<dt class="sig sig-object py">
|
||
<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.subnet_service.</span></span><span class="sig-name descname"><span class="pre">SubnetService</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></em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/services/subnet_service.html#SubnetService"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<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>Объединяет сетевое сканирование (ARP), сбор дополнительной информации
|
||
(вендор, хостнейм), слияние с кэшем предыдущих результатов и персистентное
|
||
хранение данных по подсетям. Предоставляет вспомогательные операции для
|
||
локального узла и работы с заметками устройств.</p>
|
||
</dd>
|
||
<dt>Поток выполнения скана (<cite>scan_subnet</cite>):</dt><dd><ol class="arabic simple">
|
||
<li><p>Определение подсети (вручную или авто по интерфейсу).</p></li>
|
||
<li><p>Загрузка ранее сохранённых устройств подсети.</p></li>
|
||
<li><p>Добавление локального устройства (если принадлежит подсети).</p></li>
|
||
<li><p>ARP-сканирование и параллельная обработка узлов (обогащение данных).</p></li>
|
||
<li><p>Маркировка оффлайн-узлов из кэша, не встреченных в текущем скане.</p></li>
|
||
<li><p>Сортировка по IP и сохранение объединённого списка в JSON.</p></li>
|
||
</ol>
|
||
</dd>
|
||
</dl>
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py">
|
||
<span class="sig-name descname"><span class="pre">add_note</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mac</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">note</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</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></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">bool</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Dict</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../../_modules/services/subnet_service.html#SubnetService.add_note"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<dd><p>Добавляет заметку для устройства по MAC-адресу.</p>
|
||
<p>Привязывает заметку к устройству, если оно существует.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>mac</strong> (<em>str</em>) – MAC-адрес устройства.</p></li>
|
||
<li><p><strong>note</strong> (<em>str</em>) – Текст заметки.</p></li>
|
||
<li><p><strong>translations</strong> (<em>Translations</em>) – Объект переводов для текущего языка.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><dl class="simple">
|
||
<dt>Кортеж (успех, результат),</dt><dd><p>где результат содержит код ошибки/успеха и данные.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>Tuple[bool, Optional[Tuple[str, Dict]]]</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py">
|
||
<span class="sig-name descname"><span class="pre">delete_note</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mac</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</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></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">bool</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Dict</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../../_modules/services/subnet_service.html#SubnetService.delete_note"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<dd><p>Удаляет заметку для устройства по MAC-адресу.</p>
|
||
<p>Удаляет привязанную заметку, если она существует.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>mac</strong> (<em>str</em>) – MAC-адрес устройства.</p></li>
|
||
<li><p><strong>translations</strong> (<em>Translations</em>) – Объект переводов для текущего языка.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><dl class="simple">
|
||
<dt>Кортеж (успех, результат),</dt><dd><p>где результат содержит код ошибки/успеха и данные.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>Tuple[bool, Optional[Tuple[str, Dict]]]</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py">
|
||
<span class="sig-name descname"><span class="pre">scan_subnet</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">subnet</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</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">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">SubnetScanResult</span></span></span><a class="reference internal" href="../../_modules/services/subnet_service.html#SubnetService.scan_subnet"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<dd><p>Сканирует указанную подсеть и возвращает результаты.</p>
|
||
<p>Выполняет ARP-сканирование, собирает информацию о устройствах и сохраняет данные.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>subnet</strong> (<em>Optional</em><em>[</em><em>str</em><em>]</em>) – Подсеть в формате CIDR (например, “10.1.1.0/24”).
|
||
Если None или пустая строка, определяется автоматически.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><dl class="simple">
|
||
<dt>Объект с результатами сканирования, содержащий список</dt><dd><p>устройств или сообщение об ошибке.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>SubnetScanResult</p>
|
||
</dd>
|
||
<dt class="field-even">Raises<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><strong>Exception</strong> – Если произошла ошибка сканирования.</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<dl class="py method">
|
||
<dt class="sig sig-object py">
|
||
<span class="sig-name descname"><span class="pre">update_note</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mac</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">note</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</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></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">bool</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Dict</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../../_modules/services/subnet_service.html#SubnetService.update_note"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<dd><p>Обновляет заметку для устройства по MAC-адресу.</p>
|
||
<p>Изменяет существующую заметку, если она есть.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>mac</strong> (<em>str</em>) – MAC-адрес устройства.</p></li>
|
||
<li><p><strong>note</strong> (<em>str</em>) – Новый текст заметки.</p></li>
|
||
<li><p><strong>translations</strong> (<em>Translations</em>) – Объект переводов для текущего языка.</p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p><dl class="simple">
|
||
<dt>Кортеж (успех, результат),</dt><dd><p>где результат содержит код ошибки/успеха и данные.</p>
|
||
</dd>
|
||
</dl>
|
||
</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>Tuple[bool, Optional[Tuple[str, Dict]]]</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</dd></dl>
|
||
|
||
<dl class="py function">
|
||
<dt class="sig sig-object py">
|
||
<span class="sig-prename descclassname"><span class="pre">services.subnet_service.</span></span><span class="sig-name descname"><span class="pre">get_subnet_service</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/subnet_service.html#get_subnet_service"><span class="viewcode-link"><span class="pre">[source]</span></span></a></dt>
|
||
<dd><p>Фабричная функция для создания экземпляра SubnetService.</p>
|
||
<p>Использует зависимости FastAPI для получения объекта переводов и возвращает
|
||
экземпляр SubnetService с текущей локализацией.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p><strong>translations</strong> (<em>Translations</em>) – Объект переводов для текущего языка.</p>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>Экземпляр сервиса для работы с подсетями.</p>
|
||
</dd>
|
||
<dt class="field-odd">Return type<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><p>SubnetService</p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
</section>
|
||
|
||
</article>
|
||
</div>
|
||
<footer>
|
||
|
||
<div class="related-pages">
|
||
<a class="next-page" href="ufw_service.html">
|
||
<div class="page-info">
|
||
<div class="context">
|
||
<span>Next</span>
|
||
</div>
|
||
<div class="title">UFW Service</div>
|
||
</div>
|
||
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
|
||
</a>
|
||
<a class="prev-page" href="settings_service.html">
|
||
<svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg>
|
||
<div class="page-info">
|
||
<div class="context">
|
||
<span>Previous</span>
|
||
</div>
|
||
|
||
<div class="title">Settings Service</div>
|
||
|
||
</div>
|
||
</a>
|
||
</div>
|
||
<div class="bottom-of-page">
|
||
<div class="left-details">
|
||
<div class="copyright">
|
||
Copyright © 2025, GONETS
|
||
</div>
|
||
Made with <a href="https://www.sphinx-doc.org/">Sphinx</a> and <a class="muted-link" href="https://pradyunsg.me">@pradyunsg</a>'s
|
||
|
||
<a href="https://github.com/pradyunsg/furo">Furo</a>
|
||
|
||
</div>
|
||
<div class="right-details">
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</footer>
|
||
</div>
|
||
<aside class="toc-drawer no-toc">
|
||
|
||
|
||
|
||
</aside>
|
||
</div>
|
||
</div><script src="../../_static/documentation_options.js?v=47de8214"></script>
|
||
<script src="../../_static/doctools.js?v=9bcbadda"></script>
|
||
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||
<script src="../../_static/scripts/furo.js?v=46bd48cc"></script>
|
||
</body>
|
||
</html> |