Files
DomainMapper/README.md
2024-09-18 23:12:47 +11:00

135 lines
7.6 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.
## 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