# IP Service Сервис проверки и применения IP-настроек через NetworkManager (D-Bus). Назначение: - Перед применением конфигурации проверяет занятость IP адреса, сканируя сегмент сети средствами ARP (через NetworkScanner). - Применяет изменения профиля подключения через sdbus_async.networkmanager и выполняет переподключение интерфейса. Требования/ограничения: - Доступ к системной шине D-Bus и права на изменения сетевых профилей. - Структура входных данных должна соответствовать схеме ipv4_updates для корректного обновления вложенных полей у профиля. ### *class* services.ip_service.IPService Bases: `object` Сервис проверки доступности IP-адреса и применения настроек сети. Предоставляет асинхронные методы для проверки занятости IP-адреса с использованием ARP-сканирования и применения настроек через NetworkManager. #### *async* apply_ip_config(args: Dict[str, Any], translations: Translations = Depends(translations_dependency)) → None Применяет проверенные настройки IP к указанному соединению. Перезапускает шину D-Bus, обновляет настройки соединения через NetworkManager, отключает и переподключает устройство к сети. * **Parameters:** * **args** (*Dict* *[**str* *,* *Any* *]*) – Словарь с данными, включая: - “connection_id” (str): Идентификатор соединения. - “ipv4_updates” (Dict): Обновления настроек IPv4. * **translations** (*Translations*) – Объект переводов. * **Raises:** * **ValueError** – Если соединение с указанным ID не найдено. * **RuntimeError** – Если устройство для интерфейса не найдено. #### NOTE Требуются права для изменения настроек через NetworkManager. #### *async* check_ip_config(args: Dict[str, Any], translations: Translations = Depends(translations_dependency)) → Dict[str, Any] Проверяет доступность IP-адреса перед его применением. Выполняет ARP-сканирование сети для проверки, занят ли указанный IP-адрес. Перезапускает шину D-Bus перед выполнением. * **Parameters:** * **args** (*Dict* *[**str* *,* *Any* *]*) – Словарь с данными, включая “ipv4_updates” с полем “ipv4.address-data” для нового IP-адреса. * **translations** (*Translations*) – Объект переводов. * **Returns:** Словарь с ключами: : - ”available” (bool): Доступен ли IP-адрес. - ”message” (str): Сообщение о результате проверки. * **Return type:** Dict[str, Any] * **Raises:** **Exception** – Если произошла ошибка при сканировании ARP.