Files
DomainMapper/utilities/README.md
2025-09-07 12:16:34 +11:00

138 lines
5.9 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-адресов в подсети с масками `/16`, `/24`, или объединение нескольких подсетей.
- Исключение IP-адресов Cloudflare из итогового списка (при необходимости).
- Поддержка различных форматов маршрутизации:
- Windows (`route add`)
- Unix (`ip route`)
- Keenetic (`ip route` с интерфейсом)
- Mikrotik (`/ip firewall`)
- WireGuard
- OpenVPN
- CIDR (с указанием маски)
### Использование
1. Установите [зависимости](https://github.com/Ground-Zerro/DomainMapper/blob/main/requirements.txt):
```bash
pip install -r requirements.txt
```
2. Поместите файл c IP-адресами `ip.txt` в корневую директорию проекта. Файл может содержать любой текст и IP-адреса в любом виде - лишнее будет убрано автоматически.
3. Запустите скрипт:
```bash
python convert.py
```
4. Следуйте подсказкам на экране.
## split
Скрипт для обработки IP-адресов, их агрегации в подсети и форматирования маршрутов для различных типов сетевых устройств.
### Функции
Утилита для разбиения текстового файла на части фиксированного размера.
- В исходном файле остаются только первые 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)
```