mirror of
https://github.com/Ground-Zerro/DomainMapper.git
synced 2025-12-10 01:47:18 +07:00
165 lines
7.4 KiB
Markdown
165 lines
7.4 KiB
Markdown
# Вспомогательные утилиты:
|
||
- [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)
|
||
```
|