# ARP Service Сервис низкоуровневого ARP-сканирования локальной сети. Назначение: - Обнаружение активных узлов в пределах сетей хоста путём широковещательных ARP-запросов от имени выбранного интерфейса. - Помощь сервисам более высокого уровня (например, IPService) при проверке занятости адресов перед применением конфигураций. Особенности реализации: - Определяет подключённые сети интерфейса через netifaces и строит CIDR для сканирования. - Формирует ARP-пакеты с помощью scapy (Ether/ARP) и отправляет их с таймаутом. - Добавляет локальный адрес интерфейса в результирующий список клиентов. Требования/ограничения: - Для отправки ARP-кадров могут потребоваться повышенные привилегии или capability на сырой сокет. ### *class* services.arp_service.NetworkScanner(interface=None, translations: Translations = Depends(translations_dependency)) Bases: `object` Инициализация сетевого сканера. Предоставляет методы для сканирования сети с использованием ARP-запросов и вывода информации о клиентах. #### print_clients(clients) Выводит список адресов клиентов в формате таблицы. * **Parameters:** **clients** (*List* *[**dict* *]*) – Список словарей с ключами “ip” и “mac”, представляющих клиентов. Выводит IP-адреса и MAC-адреса в отсортированном по IP порядке. #### scan_network(attempts=3, timeout=2) Сканирует сеть для обнаружения активных клиентов. * **Parameters:** * **attempts** (*int* *,* *optional*) – Количество попыток отправки ARP-запросов. По умолчанию 3. * **timeout** (*int* *,* *optional*) – Таймаут ожидания ответа в секундах. По умолчанию 2. * **Returns:** Список словарей с ключами “ip” и “mac”, представляющих : обнаруженных клиентов, включая локальные IP-адреса. * **Return type:** List[dict] #### NOTE Учитывает локальные IP-адреса интерфейса и удаляет дубликаты.