mirror of
https://github.com/Ground-Zerro/DomainMapper.git
synced 2025-12-10 01:47:18 +07:00
135 lines
7.6 KiB
Markdown
135 lines
7.6 KiB
Markdown
## Domain Mapper
|
||
|
||
|
||
**Описание:** Инструмент на языке 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
|
||
- Личный список
|
||
|
||
|
||
**Функции:**
|
||
- Скрипт использует списки доменных имен популярных сервисов и разрешает их в IP-адреса.
|
||
- Итоговый список содержит только уникальные IP-адреса исключая дубликаты, также фильтруются IP-адреса самих DNS-серверов, заглушки в виде редиректа на localhost и (по желанию) IP-адреса Cloudflare.
|
||
- Выбор между системным DNS сервером, популярными публичными, либо их комбинации.
|
||
- Разрешение DNS имени происходит используя каждый из указанных пользователем DNS серверов и не останавливается при первом же успешном получении его IP-адреса.
|
||
- Пользователь может создать свой список с DNS именами, необходимыми лично ему.
|
||
- Агрегация маршрутов до /16 (255.255.0.0), /24 (255.255.255.0).
|
||
|
||
|
||
**Автоматизация:**
|
||
Конфигурационный файл позволяет настроить работу скрипта в "молчаливом" режиме - без промтов к пользователю.
|
||
Так же в конфигурационном файле можно добавить выполнение кастомной команды в консоли для запуска другого скрипта или программы при завершении его работы.
|
||
|
||
|
||
**Зависимости:** Для работы Domain Mapper необходимо наличие следующих библиотек Python:
|
||
- configparser, ipaddress, dnspython, httpx, colorama.
|
||
|
||
*Не забудьте установить их перед запуском:*
|
||
```
|
||
pip3 install -r requirements.txt
|
||
```
|
||
|
||
|
||
**Использование:**
|
||
- Запустить с помощью Python. Для работы необходим только "main.py" и (по желанию) файл "config.ini".
|
||
|
||
|
||
<details>
|
||
<summary>Дополнительный личный список с доменными именами (нажать чтоб открыть)</summary>
|
||
|
||
- Создать файл "custom-dns-list.txt", записать в него DNS имена (одна строчка - одно имя) и положить рядом со скриптом. Список будет подхвачен при запуске и отображен в меню как "Custom DNS list".
|
||
|
||
</details>
|
||
|
||
<details>
|
||
<summary>Запуск скрипта с файлом конфигурации отличным от config.ini (нажать чтоб открыть)</summary>
|
||
|
||
- Можно передавать путь к конфигурационному файлу при запуске скрипта с помощью опции `-c` (или `--config`). Если параметр не указан, по умолчанию будет использоваться файл config.ini.
|
||
|
||
Пример использования: `main.py -с myconfig.ini` или `python main.py -с config2.ini` или `main.py -с srv5.ini` и т.п.
|
||
|
||
</details>
|
||
|
||
<details>
|
||
<summary>Кто не знает "как", но кому "очень нужно" (нажать чтоб открыть)</summary>
|
||
|
||
- Загляните в директорию "Windows" репозитория.
|
||
</details>
|
||
|
||
<details>
|
||
<summary>Локальный режим работы (нажать чтоб открыть)</summary>
|
||
|
||
В этом режиме списки DNS серверов и сервисов будут загружены из локальных файлов в папке со скриптом, а не из сети.
|
||
|
||
Загружать список сервисов из файла `platformdb` - указать `localplatform = yes` в config.ini.
|
||
- Формат файла: Название сервиса двоеточие путь к локальному файлу.
|
||
Пример:
|
||
```
|
||
Torrent Truckers: platforms/dns-ttruckers.txt
|
||
Search engines: platforms/dns-search-engines.txt
|
||
Twitch: platforms/dns-twitch.txt
|
||
```
|
||
|
||
Загружать список DNS серверов из файла `dnsdb` в папке со скриптом - указать `localplatform = yes` в config.ini.
|
||
- Формат файла: Название DNS сервера двоеточие IP-адрес пробел IP-адрес.
|
||
Пример:
|
||
```
|
||
CleanBrowsing: 185.228.168.9 185.228.169.9
|
||
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` и т.п.) приведет к ошибке.
|
||
|
||
</details>
|
||
|
||
|
||
|
||
<details>
|
||
<summary>Что нового (нажать чтоб открыть)</summary>
|
||
|
||
- Режим работы с личными (локальными) `platformdb` и `dnsdb`.
|
||
- Вспомагательные [утилиты](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)
|
||
|
||
</details>
|
||
|
||
|
||
|
||
##### Протестировано в Ubuntu 20.04, macOS Sonoma и Windows 10/11
|