Find a file
Kirill Minovsky a680865543 docs(readme): Update Python version and dependencies
- Updated minimum Python version requirement to 3.10+
- Added `aiodns>=4.0` to the list of required dependencies
2026-02-15 21:05:23 +03:00
.github/workflows ci(workflow): Configure release-based Docker builds 2026-02-15 14:49:29 +03:00
images docs(readme): Add screenshot and reorganize Windows section 2026-02-14 03:00:57 +03:00
.gitignore add build folders 2026-02-14 02:38:09 +03:00
config.py feat(config): Introduce DNS checking and tune network parameters 2026-02-15 21:03:26 +03:00
Dockerfile init commit 2026-02-14 02:21:23 +03:00
domains.txt init commit 2026-02-14 02:21:23 +03:00
dpi_detector.py feat(dns): Implement comprehensive DNS integrity checks 2026-02-15 21:04:29 +03:00
LICENSE Initial commit 2026-02-14 01:00:15 +03:00
README.md docs(readme): Update Python version and dependencies 2026-02-15 21:05:23 +03:00
requirements.txt build(deps): Add aiodns dependency 2026-02-15 21:03:12 +03:00
tcp_16_20_targets.json fix(targets): Remove unstable server targets 2026-02-15 15:24:52 +03:00

🔍 DPI Detector

Инструмент для обнаружения блокировок сайтов/CDN/хостинг-провайдеров у российских интернет-провайдеров.

Если проект полезен, поставьте звезду!

Python 3.8+ License: MIT Docker

Пример результатов

🎯 Возможности

  • Анализ TLS - Проверка работы TLS 1.2 и TLS 1.3, обнаружение подмены сертификатов (MITM) и блокировки по SNI
  • HTTP Injection детектор - находит редиректы на блок-страницы провайдера
  • TCP 16-20KB блокировка - обнаруживает обрыв соединения после передачи 14-34KB
  • Классификация ошибок - TCP Reset (RST), Connection Abort, Handshake/Read Timeout, TLS alerts, SNI blocking, MITM (подмена сертификата), HTTP 451 и редиректы провайдера.
  • Поддержка IPv4-only режима - для изоляции от IPv6

🐋 Docker (Рекомендовано)

Быстрый старт

Запуск одной командой

docker run --rm -it ghcr.io/runnin4ik/dpi-detector:latest

С кастомными доменами

Создайте нужные кастомные файлы: domains.txt, tcp_16_20_targets.json или config.py
Запустите с монтированием (можно монтировать один или несколько файлов)

# Bash (Linux / macOS)
docker run --rm -it \
  -v $(pwd)/domains.txt:/app/domains.txt \
  -v $(pwd)/tcp_16_20_targets.json:/app/tcp_16_20_targets.json \
  -v $(pwd)/config.py:/app/config.py \
  ghcr.io/runnin4ik/dpi-detector:latest
Команды для PowerShell и CMD

PowerShell (Windows)

docker run --rm -it `
  -v ${PWD}/domains.txt:/app/domains.txt `
  -v ${PWD}/tcp_16_20_targets.json:/app/tcp_16_20_targets.json `
  -v ${PWD}/config.py:/app/config.py `
  ghcr.io/runnin4ik/dpi-detector:latest

CMD (Windows)

docker run --rm -it ^
  -v %cd%/domains.txt:/app/domains.txt ^
  -v %cd%/tcp_16_20_targets.json:/app/tcp_16_20_targets.json ^
  -v %cd%/config.py:/app/config.py ^
  ghcr.io/runnin4ik/dpi-detector:latest

🐍 Python 3.10+

Требования: httpx>=0.28, rich>=14.3, aiodns>=4.0

Установка:

git clone https://github.com/Runnin4ik/dpi-detector.git
cd dpi-detector
python -m pip install -r requirements.txt

Запуск:

python dpi_detector.py

🪟 Windows

Для тех, кто не хочет ставить python - к каждому релизу прикреплен .exe файл

Кастомизация:

# Домены для проверки блокировки/замедления
domains.txt
# Домены для проверки TCP 16-20KB блокировки
tcp_16_20_targets.json
# Много настроек, которые можно менять
config.py

🤝 Вклад в проект

Приветствуются Issue и Pull Request'ы и предложения функционала!

📜 Лицензия

MIT License — свободное использование, модификация и распространение.

⚠️ Дисклеймер

Этот инструмент предназначен исключительно для образовательных и диагностических целей. Автор не несет ответственности за использование данного ПО.

🙏 Благодарности

  • Вдохновлено проектом hyperion-cs/dpi-checkers и частично используются его домены для проверки TCP16-20 блокировок