Вспомогательные утилиты:
- subdomain - поиск субдоменов
- verified - проверка активности доменов
- convert - конвертер маршрутов
- split - разбить список на файлы по 1000 строк
subdomain
Скрипт представляет собой парсер, который собирает субдомены (A-записи) указанного пользователем домена используя веб-сайт rapiddns.io. Результаты сохраняются в файл.
Функции
- Загружает страницу по указанному URL и извлекает субдомены из таблиц, где тип записи равен "A".
- Пытается повторить запрос до 3х раз в случае ошибки или отсутствия данных.
- Останавливается, если данные на последних трех страницах одинаковы или если три страницы подряд пустые.
Использование
-
Установите зависимости:
pip install -r requirements.txt -
Запустите скрипт:
python subdomain.py -
Введите URL домена, поддомены которого вы хотите спарсить, например:
example.com -
Скрипт начнет парсинг страниц и сохранит найденные субдомены в файл
result.txt.
verified
Скрипт предназначен для проверки доменов на их делегированность.
Функции
- Проверяет домены используя DNS-серверы: Google Public DNS, Cloudflare DNS и Yandex. Пул потоков ограничен 40 рабочими потоками.
- Возвращает статус домена: делегирован, припаркован/неактивен или ошибку.
- Если статус домена не был подтвержден как делегированный проводит его контрольную проверку.
Использование
-
Установите зависимости:
pip install -r requirements.txt -
Поместите файл
result.txtв корневую директорию проекта. Файл должен содержать список доменов, каждый на новой строке. -
Запустите скрипт:
python verified.py -
Скрипт проверит домены и сохранит результат в файл
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 строк).
- Удаление исходного файла после разделения на части.
- Проверка наличия входного файла с выводом инструкций при его отсутствии.
Использование
Linux/macOS
-
Установите зависимости:
pip install -r requirements.txt -
Создайте файл
ip.txtв директории со скриптом и добавьте в него IP-адреса (по одному на строку) или любой текст содержащий IP-адреса.Пример содержимого
ip.txt:192.168.1.1 10.0.0.1 Какой-то текст с IP: 172.16.0.1 -
Запустите скрипт:
python convert.py -
Следуйте интерактивным подсказкам на экране:
- Выберите, нужно ли исключить IP-адреса Cloudflare (1 - да, Enter - нет)
- Выберите агрегацию подсетей (1 - /16, 2 - /24, 3 - mix, Enter - без агрегации)
- Выберите формат сохранения (1-8 или Enter для простого списка IP)
- При необходимости укажите шлюз/интерфейс/имя списка
-
Результат будет сохранен в файл
ip.txt(или в несколько файлов, если был выбран формат с автоматическим разделением).
Windows
-
Скачайте файл convert.bat
-
Создайте файл
ip.txtв той же директории, где находитсяconvert.bat, и добавьте в него IP-адреса -
Запустите
convert.bat
split
Утилита для разбиения текстового файла на части фиксированного размера.
Функции
В исходном файле остаются только первые 1000 строк (значение по умолчанию).
Остальные строки сохраняются в новые файлы:
- domain-ip-resolve2.txt
- domain-ip-resolve3.txt
- и т.д., по 1000 строк в каждом.
Если строк меньше или равно 1000 — разбиение не выполняется.
Использование
-
Установите зависимости:
pip install -r requirements.txt -
Поместите файл c IP-адресами
domain-ip-resolve.txtв корневую директорию проекта. -
Запустите скрипт:
python split.py
Можно указать свой файл и размер блока строк:
split_file_exact("mydata.txt", max_lines=500)