Files
DomainMapper/utilities/README.md
Ground-Zerro e11e5696cf update
2025-11-01 21:25:15 +11:00

165 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Вспомогательные утилиты:
- [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)
```