# Вспомогательные утилиты: - [subdomain - поиск субдоменов](#subdomain) - [verified - проверка активности доменов](#verified) - [convert - конвертер маршрутов](#convert) - [split - разбить список на файлы по 1000 строк](#split) ## subdomain Скрипт представляет собой парсер, который собирает субдомены (A-записи) указанного пользователем домена используя веб-сайт [rapiddns.io](https://rapiddns.io/subdomain/). Результаты сохраняются в файл. ### Функции - Загружает страницу по указанному URL и извлекает субдомены из таблиц, где тип записи равен "A". - Пытается повторить запрос до 3х раз в случае ошибки или отсутствия данных. - Останавливается, если данные на последних трех страницах одинаковы или если три страницы подряд пустые. ### Использование 1. Установите [зависимости](https://github.com/Ground-Zerro/DomainMapper/blob/main/requirements.txt): ```bash pip install -r requirements.txt ``` 2. Запустите скрипт: ```bash python subdomain.py ``` 3. Введите URL домена, поддомены которого вы хотите спарсить, например: ``` example.com ``` 4. Скрипт начнет парсинг страниц и сохранит найденные субдомены в файл `result.txt`. ## verified Скрипт предназначен для проверки доменов на их делегированность. ### Функции - Проверяет домены используя DNS-серверы: Google Public DNS, Cloudflare DNS и Yandex. Пул потоков ограничен 40 рабочими потоками. - Возвращает статус домена: делегирован, припаркован/неактивен или ошибку. - Если статус домена не был подтвержден как делегированный проводит его контрольную проверку. ### Использование 1. Установите [зависимости](https://github.com/Ground-Zerro/DomainMapper/blob/main/requirements.txt): ```bash pip install -r requirements.txt ``` 2. Поместите файл `result.txt` в корневую директорию проекта. Файл должен содержать список доменов, каждый на новой строке. 3. Запустите скрипт: ```bash python verified.py ``` 4. Скрипт проверит домены и сохранит результат в файл `verified_domains.txt`. ## convert Скрипт для обработки IP-адресов, их агрегации в подсети и форматирования маршрутов для различных типов сетевых устройств. ### Функции - Извлечение IP-адресов из файла (файл может содержать любой текст - IP автоматически извлекаются). - Исключение IP-адресов Cloudflare из итогового списка (опционально). - Агрегация IP-адресов в подсети: - `/16` (255.255.0.0) - `/24` (255.255.255.0) - Mix режим (`/24` + `/32`) - Поддержка различных форматов маршрутизации: - Только IP-адреса - Windows route (`route add`) - Linux route (`ip route`) - Keenetic BAT (`route add` для bat-файлов) - Keenetic CLI (`ip route` с интерфейсом) - Mikrotik firewall (`/ip/firewall/address-list`) - WireGuard - OpenVPN (`push "route"`) - CIDR нотация - Автоматическое разделение больших файлов на части (для Keenetic BAT формата, max 999 строк). - Удаление исходного файла после разделения на части. - Проверка наличия входного файла с выводом инструкций при его отсутствии. ### Использование 1. Установите [зависимости](https://github.com/Ground-Zerro/DomainMapper/blob/main/requirements.txt): ```bash pip install -r requirements.txt ``` 2. Создайте файл `ip.txt` в директории со скриптом и добавьте в него IP-адреса (по одному на строку) или любой текст содержащий IP-адреса. Пример содержимого `ip.txt`: ``` 192.168.1.1 10.0.0.1 Какой-то текст с IP: 172.16.0.1 ``` 3. Запустите скрипт: ```bash python convert.py ``` 4. Следуйте интерактивным подсказкам на экране: - Выберите, нужно ли исключить IP-адреса Cloudflare (1 - да, Enter - нет) - Выберите агрегацию подсетей (1 - /16, 2 - /24, 3 - mix, Enter - без агрегации) - Выберите формат сохранения (1-8 или Enter для простого списка IP) - При необходимости укажите шлюз/интерфейс/имя списка 5. Результат будет сохранен в файл `ip.txt` (или в несколько файлов, если был выбран формат с автоматическим разделением). ### Примечания - Если файл `ip.txt` не найден, скрипт выведет подробную инструкцию по его созданию и корректно завершится. - Для формата Keenetic BAT файл автоматически разделяется на части по 999 строк, исходный файл удаляется. ## split Утилита для разбиения текстового файла на части фиксированного размера. ### Функции В исходном файле остаются только первые 1000 строк (значение по умолчанию). Остальные строки сохраняются в новые файлы: - domain-ip-resolve2.txt - domain-ip-resolve3.txt - и т.д., по 1000 строк в каждом. Если строк меньше или равно 1000 — разбиение не выполняется. ### Использование 1. Установите [зависимости](https://github.com/Ground-Zerro/DomainMapper/blob/main/requirements.txt): ```bash pip install -r requirements.txt ``` 2. Поместите файл c IP-адресами `domain-ip-resolve.txt` в корневую директорию проекта. 3. Запустите скрипт: ```bash python split.py ``` ### Можно указать свой файл и размер блока строк: ```bash split_file_exact("mydata.txt", max_lines=500) ```