Этот скрипт предназначен для добавления статических маршрутов на роутер Keenetic с использованием нотации CIDR. Он загружает список CIDR-блоков из указанного URL, объединяет их с заранее определенным списком пользовательских CIDR-блоков и добавляет их в таблицу маршрутизации роутера. Скрипт использует базовую аутентификацию для безопасного доступа к роутеру. ## Требования * Python 3.x * Библиотеки urllib и base64 (входят в стандартную библиотеку) * Переменные окружения для настройки ## Переменные окружения Перед запуском скрипта убедитесь, что установлены следующие переменные окружения: * KEENETIC_USERNAME: Имя пользователя для роутера Keenetic (по умолчанию: admin) * KEENETIC_PASSWORD: Пароль для роутера Keenetic (обязательно) * KEENETIC_HOST: IP-адрес роутера Keenetic (по умолчанию: 192.168.0.1) * KEENETIC_INTERFACE: Сетевая интерфейс для использования (по умолчанию: Proxy0) ## Пользовательский список CIDR Скрипт включает заранее определенный список CIDR-блоков для YouTube. Вы можете изменить этот список в переменной CUSTOM_CIDR_LIST. ```python CUSTOM_CIDR_LIST = [ "64.18.0.0/20", "64.233.160.0/19", "66.102.0.0/20", "66.249.80.0/20", "72.14.192.0/18", "74.125.0.0/16", "173.194.0.0/16", "207.126.144.0/20", "209.85.128.0/17", "216.58.208.0/20", "216.239.32.0/19", "213.0.0.0/8", ] ``` ## Функции * cidr_to_netmask(cidr): Преобразует нотацию CIDR в маску подсети. * fetch_cidr_list(url): Загружает список CIDR-блоков из указанного URL. * add_route_to_keenetic(ip, netmask, gateway, username, password): Добавляет маршрут на роутер Keenetic. * add_routes_to_keenetic(routes, gateway, username, password, max_retries=3): Добавляет несколько маршрутов с логикой повторных попыток. * main(): Основная функция, которая управляет загрузкой и добавлением маршрутов. ## Использование Чтобы запустить скрипт, выполните следующую команду в терминале: ```bash python3 update_routes.py ``` ## Пример Чтобы использовать скрипт, установите необходимые переменные окружения и запустите его. Скрипт выведет статус добавления каждого маршрута: ```text Маршрут 64.18.0.0 с маской 255.255.240.0 успешно добавлен. Маршрут 64.233.160.0 с маской 255.255.224.0 успешно добавлен. ... ```