Ground-Zerro / DomainMapper

A tool for scanning and resolving DNS names into IP addresses
MIT License
308 stars 55 forks source link

Domain Mapper

Что нового (нажать, чтобы открыть) - [Конвертер маршутов](https://github.com/Ground-Zerro/DomainMapper/tree/main/utilities) как отдельная утилита. [Запрос @Andrey999r](https://github.com/Ground-Zerro/DomainMapper/discussions/43) - Добавлен сервис Jetbrains. [Запрос @SocketSomeone](https://github.com/Ground-Zerro/DomainMapper/issues/40) - Добавлен сервис Discord. [Запрос @AHuMex](https://github.com/Ground-Zerro/DomainMapper/issues/38) - [Комбинированный режим объединения IP-адресов в подсеть.](https://github.com/Ground-Zerro/DomainMapper/issues/36) - Возможность загрузки списков сервисов и DNS-серверов из локального файла. [Запрос @Noksa](https://github.com/Ground-Zerro/DomainMapper/issues/26) - Вспомагательные [утилиты](https://github.com/Ground-Zerro/DomainMapper/tree/main/utilities) для поиска субдоменов. - Добавлен сервис Twitch. [Запрос @shevernitskiy](https://github.com/Ground-Zerro/DomainMapper/issues/31) - Добавлен Yandex DNS сервер. [Запрос @Noksa](https://github.com/Ground-Zerro/DomainMapper/issues/26) - Опция в config.ini: Отключить отображение сведений о загруженой конфигурации. - Передача имени конфигурационного файла ключом в терминале/командной строке. [Запрос @Noksa](https://github.com/Ground-Zerro/DomainMapper/issues/25) - Добавлен сервис Github Copilot. [Запрос @aspirisen](https://github.com/Ground-Zerro/DomainMapper/issues/23) - Keenetic CLI формат сохранения. [Запрос @vchikalkin](https://github.com/Ground-Zerro/DomainMapper/pull/20) - Wireguard формат сохранения. [Запрос @sanikroot](https://github.com/Ground-Zerro/DomainMapper/issues/18) - Агрегация маршрутов до /24, /16. [Запрос @sergeeximius](https://github.com/Ground-Zerro/DomainMapper/issues/8) - OVPN формат сохранения. [Запрос @SonyLo](https://github.com/Ground-Zerro/DomainMapper/pull/13) - Mikrotik формат сохранения. [Запрос @Shaman2010](https://github.com/Ground-Zerro/DomainMapper/pull/9)

Описание: Инструмент на языке Python, предназначенный для разрешения DNS имен популярных веб-сервисов в IP-адреса.

Поддерживаемые сервисы (нажать, чтобы открыть) - [Antifilter - community edition](https://community.antifilter.download/) - Youtube - Facebook - Openai - Tik-Tok - Instagram - Twitter - Netflix - Bing - Adobe - Apple - Google - Torrent Truckers - Search engines - [Github сopilot](https://github.com/features/copilot) - Twitch - Discord - Jetbrains - Личный список

Функции:

Ключевые особенности

Использование:

  1. Установите зависимости:

    pip install -r requirements.txt
  2. Отредактируйте config.ini под свои задачи (опционально)

  3. Запустите скрипт:

    python main.py
Локальный режим работы (нажать, чтобы открыть) В этом режиме списки DNS-серверов и сервисов загружаются из локальных файлов в папке со скриптом, а не из сети. Для включения загрузки списка сервисов из локального файла `platformdb`, укажите `localplatform = yes` в config.ini. - Формат файла `platformdb`: название сервиса и путь к локальному файлу через двоеточие. Поддерживается работа как с файлами на локальной машине, так и их загрузка из сети по http(s). Пример: ``` Torrent Truckers: platforms/dns-ttruckers.lst Search engines: dns-search-engines.txt Twitch: platforms/service/dns-twitch.txt Adobe: https://raw.githubusercontent.com/Ground-Zerro/DomainMapper/main/platforms/dns-adobe.txt ``` Для включения загрузки списка DNS-серверов из локального файла `dnsdb`, укажите `localdns = yes` в config.ini. - Формат файла `dnsdb`: название DNS-сервера и его IP-адреса через двоеточие и пробел. Важно - нужно обязательно указать два IP-адреса для каждого названия (можно один и тот же), это необходимо для правильной работы кода. Пример: ``` SkyDNS: 77.88.8.8 77.88.8.8 Alternate DNS: 76.76.19.19 76.223.122.150 AdGuard DNS: 94.140.14.14 94.140.15.15 ``` Важно: названия сервисов и нумерация DNS-серверов в config.ini должны соответствовать тем, что указаны в файлах `platformdb` и `dnsdb`. - Формат файла с доменными именами: по одному домену на строку. Пример: ``` ab.chatgpt.com api.openai.com arena.openai.com ``` Указание URL вместо доменного имени (например, `ab.chatgpt.com/login` вместо `ab.chatgpt.com`) приведет к ошибке.
Запуск скрипта с файлом конфигурации, отличным от `config.ini` (нажать, чтобы открыть) - Указать путь к другому конфигурационному файлу при запуске скрипта можно с помощью опции `-c` (или `--config`). Если параметр не указан, по умолчанию будет использоваться файл `config.ini`. Пример использования: `main.py -c myconfig.ini`, `python main.py -c config2.ini` или `main.py -c srv5.ini` и т.д.
Личный (локальный) список с доменными именами (нажать, чтобы открыть) - Создайте файл `custom-dns-list.txt`, запишите в него доменные имена и разместите его рядом со скриптом. Список будет автоматически подхвачен при запуске и появится в меню как "Custom DNS list". - Пример файла `custom-dns-list.txt`: ``` ab.chatgpt.com api.openai.com arena.openai.com ``` Указание URL вместо доменного имени (например, `ab.chatgpt.com/login` вместо `ab.chatgpt.com`) приведет к ошибке.
Для пользователей Windows, не знающих "как", но кому "очень нужно" (нажать, чтобы открыть) - Загляните в директорию [Windows](https://github.com/Ground-Zerro/DomainMapper/tree/main/Windows) репозитория.
Протестировано в Ubuntu 20.04, macOS Sonoma и Windows 10/11