[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74231":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},74231,"dpi-detector","Runnin4ik\u002Fdpi-detector","Runnin4ik","DPI detection tool for internet censorship testing. Identifies TLS, TCP, HTTP, DNS blocking and 16-20KB connection drops","",null,"Python",1693,54,20,5,0,16,47,160,48,18.22,"MIT License",false,"main",true,[],"2026-06-12 02:03:24","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FRunnin4ik\u002Fdpi-detector\u002Fmain\u002Fimages\u002Flogo.jpg\" width=\"100%\">\n  \u003Cbr>\n  \u003Ci>«Маяк у гаснущего горизонта свободного интернета»\u003C\u002Fi>\u003Cbr>\n  Сквозь цифровые сумерки. Смотритель маяка, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRunnin4ik\">\u003Cb>Runni\u003C\u002Fb>\u003C\u002Fa>\n\u003C\u002Fp>\n\n# 🔍 DPI Detector\n[![Python 3.8+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.8+-blue.svg)](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](LICENSE)\n[![Docker](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocker-ready-brightgreen.svg)](https:\u002F\u002Fgithub.com\u002FRunnin4ik\u002Fdpi-detector\u002Fpkgs\u002Fcontainer\u002Fdpi-detector)\n\nИнструмент для анализа цензуры трафика в России: обнаруживает и классифицирует блокировки сайтов, хостингов и CDN (TCP16-20 блокировки), а также подмену DNS-запросов провайдером.\n\n> \u003Cb>Инструмент был полезен? Поставь ⭐ в качестве «спасибо»!\u003C\u002Fb>\n\n![Пример результатов](https:\u002F\u002Fraw.githubusercontent.com\u002FRunnin4ik\u002Fdpi-detector\u002Fmain\u002Fimages\u002Fscreenshot.png)\n\n## 🎯 Возможности\n\n- **TCP 16-20KB блокировка** — обнаруживает обрыв соединения к CDN и хостингам после передачи 14-34KB\n- **Подбор белых SNI для AS хостингов\u002FCDN**\n- **Проверка доступности заблокированных сайтов** — тестирует TLS 1.2, TLS 1.3 и HTTP\n- **Проверка DNS** — выявляет перехват UDP\u002F53, подмену IP-адресов заглушками и блокировку DoH\n- **Классификация ошибок** — различает TCP RST, Connection Abort,\n  Handshake\u002FRead Timeout, TLS MITM, SNI-блокировку и другие\n- **Гибкая настройка** — таймауты, потоки, свои списки доменов, DNS-серверы\n  и IPv4-only режим\n\n> [!WARNING]  \n> Если у вас запущены средства обхода блокировок (например, zapret или GoodbyeDPI), результаты тестов будут искажены. Чтобы узнать реальное состояние фильтров вашего провайдера, выключите их перед началом проверки или убедитесь, что они работают в режиме обработки всех пакетов (режим ALL), а не только по списку.\n\n### ⚙️ Кастомизация\nСледующие файлы могут быть переопределены. Инструкции ниже.\n\n1.  `domains.txt` — список доменов для проверки.\n2.  `tcp16.json` — цели для теста TCP 16-20KB.\n3.  `config.yml` — конфигурация.\n4.  `whitelist_sni.txt` — список белых SNI для подбора рабочих\n\n### ⚙️ Запуск с параметрами (CLI)\n\n| Параметр              | Описание                                                            | Пример использования         |\n|:----------------------|:--------------------------------------------------------------------|:-----------------------------|\n| `-t`, `--tests`       | Указать номера тестов (без меню).                                   | `-t 123` или `-t 4`          |\n| `-p`, `--proxy`       | Использовать прокси (переопределяет `PROXY_URL`).                   | `-p socks5:\u002F\u002F127.0.0.1:1080` |\n| `-d`, `--domain`      | Проверка отдельных доменов. Игнорирует `domains.txt`                | `-d vk.com -d youtube.com`   |\n| `-c`, `--concurrency` | Количество конкурентных запросов (переопределяет `MAX_CONCURRENT`). | `-c 50`                      |\n| `-o`, `--output`      | Автоматически сохранить лог в указанный файл.                       | `-o report_log.txt`          |\n| `--batch`             | Отключает все вопросы и паузы в консоли.                            | `--batch`                    |\n\n## 🐋 Docker (Рекомендовано)\n\n### Быстрый старт\nDocker проверит наличие обновлений и скачает свежую версию перед запуском\n```bash\ndocker run --rm -it --pull=always ghcr.io\u002Frunnin4ik\u002Fdpi-detector:latest\n```\nИли запускайте с указанием определенной версии  \nЭто избавляет от постоянных скачиваний, но нужно следить за актуальностью версий\n```bash\ndocker run --rm -it ghcr.io\u002Frunnin4ik\u002Fdpi-detector:3.3.0\n```\n\n#### С кастомизацией\nПереопределите нужные файлы: `domains.txt`, `tcp16.json`...\nЗапустите с монтированием (можно монтировать один или несколько файлов)\n```bash\n# Bash (Linux \u002F macOS)\ndocker run --rm -it --pull=always \\\n  -v $(pwd)\u002Fdomains.txt:\u002Fapp\u002Fdomains.txt \\\n  -v $(pwd)\u002Ftcp16.json:\u002Fapp\u002Ftcp16.json \\\n  -v $(pwd)\u002Fconfig.yml:\u002Fapp\u002Fconfig.yml \\\n  -v $(pwd)\u002Fwhitelist_sni.txt:\u002Fapp\u002Fwhitelist_sni.txt \\\n  ghcr.io\u002Frunnin4ik\u002Fdpi-detector:latest -t 123 -d discord.com\n```\n\u003Cdetails>\n\u003Csummary>Команды для PowerShell и CMD\u003C\u002Fsummary>\n\nPowerShell (Windows)\n```bash\ndocker run --rm -it --pull=always `\n  -v ${PWD}\u002Fdomains.txt:\u002Fapp\u002Fdomains.txt `\n  -v ${PWD}\u002Ftcp16.json:\u002Fapp\u002Ftcp16.json `\n  -v ${PWD}\u002Fconfig.yml:\u002Fapp\u002Fconfig.yml `\n  -v ${PWD}\u002Fwhitelist_sni.txt:\u002Fapp\u002Fwhitelist_sni.txt `\n  ghcr.io\u002Frunnin4ik\u002Fdpi-detector:latest\n```\n\nCMD (Windows)\n```bash\ndocker run --rm -it --pull=always ^\n  -v %cd%\u002Fdomains.txt:\u002Fapp\u002Fdomains.txt ^\n  -v %cd%\u002Ftcp16.json:\u002Fapp\u002Ftcp16.json ^\n  -v %cd%\u002Fconfig.yml:\u002Fapp\u002Fconfig.yml ^\n  -v %cd%\u002Fwhitelist_sni.txt:\u002Fapp\u002Fwhitelist_sni.txt ^\n  ghcr.io\u002Frunnin4ik\u002Fdpi-detector:latest\n```\n\u003C\u002Fdetails>\n\n## 🐍 Python 3.8+\n**Требования:** httpx[socks,http2]>=0.28.1, rich>=14.3.2, PyYAML>=6.0.3\n\n**Установка:**\n```bash\n# скачайте и распакуйте архив руками, или:\ngit clone https:\u002F\u002Fgithub.com\u002FRunnin4ik\u002Fdpi-detector.git\ncd dpi-detector\npython -m pip install -r requirements.txt\n```\n\n**Запуск:**\n```bash\npython dpi_detector.py\n# или с параметрами\npython dpi_detector.py -t 2 -d discord.com -p socks5:\u002F\u002F127.0.0.1:1080\n```\n\n## 🪟 Windows (Готовые сборки)\n\nДля использования программы не обязательно устанавливать Python. Скачайте подходящий `.exe` файл в разделе [Releases -> Assets](https:\u002F\u002Fgithub.com\u002FRunnin4ik\u002Fdpi-detector\u002Freleases):\n\n*   **[Скачать для Windows 10 \u002F 11](https:\u002F\u002Fgithub.com\u002FRunnin4ik\u002Fdpi-detector\u002Freleases\u002Fdownload\u002Fv3.3.0\u002Fdpi_detector_v3.3.0_win10.exe)**\n*   **[Скачать для Windows 7 \u002F 8](https:\u002F\u002Fgithub.com\u002FRunnin4ik\u002Fdpi-detector\u002Freleases\u002Fdownload\u002Fv3.3.0\u002Fdpi_detector_v3.3.0_win7.exe)**\n\n#### С кастомизацией\n\nПереопределите нужные файлы: `domains.txt`, `tcp16.json`, `config.yml`, `whitelist_sni.txt`\nИ положите их в папку рядом с `.exe` файлом.\n\n## 🤝 Вклад в проект\nПриветствуются Issue и Pull Request'ы и предложения функционала!\n\n## 📜 Лицензия\n\n[MIT License](LICENSE) — свободное использование, модификация и распространение.\n\n## ⚠️ Дисклеймер\n\nЭтот инструмент предназначен исключительно для образовательных и диагностических целей. Автор не несет ответственности за использование данного ПО.\n\n## 🙏 Благодарности\n\n- Проекту [hyperion-cs\u002Fdpi-checkers](https:\u002F\u002Fgithub.com\u002Fhyperion-cs\u002Fdpi-checkers) за вдохновение\n- **0ka** за помощь и консультации\n\n## 👀Похожие проекты\nСоветуем также взглянуть:\n- [hyperion-cs\u002Fdpi-ch](https:\u002F\u002Fgithub.com\u002Fhyperion-cs\u002Fdpi-checkers\u002Ftree\u002Fmain\u002Fru\u002Fdpi-ch) — _DPI comprehensive checker (go)_\n\n## 💖 Поддержка проекта\n\n### [Картой или по СБП](https:\u002F\u002Fpay.cloudtips.ru\u002Fp\u002F1421d4c7)\n\n| Валюта   | Сеть   | Адрес                                              |\n|----------|--------|----------------------------------------------------|\n| **USDT** | TRC20  | `TGtcb4JMT5F3KiEL16oZnj9ijB2Pag1jCX`               |\n| **USDT** | ERC20  | `0x97413028546b5da4cbba4d9838c9d635a5333ab1`       |\n| **USDT** | TON    | `UQApgV57_p0hQGBV9oxrDi7SvKqgN3pigw5YEA28VShrZ7X_` |\n| **TON**  |        | `UQApgV57_p0hQGBV9oxrDi7SvKqgN3pigw5YEA28VShrZ7X_` |\n| **BNB**  | BEP-20 | `0x97413028546b5da4cbba4d9838c9d635a5333ab1`       |\n| **SOL**  |        | `9obMiD8hYfs4D8XskQjHPPtAKYPq9CaEZTbBMxtCjQ3k`     |\n| **BTC**  |        | `bc1q7579xpmxcrz34lzmrxfupkpcczvemeqk2e9f4h`       |\n| **ETH**  |        | `0x97413028546b5da4cbba4d9838c9d635a5333ab1`       |\n\n## Star History\n\n\u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002F#Runnin4ik\u002Fdpi-detector&type=date&legend=top-left\">\n \u003Cpicture>\n   \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=Runnin4ik\u002Fdpi-detector&type=date&theme=dark&legend=top-left\" \u002F>\n   \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=Runnin4ik\u002Fdpi-detector&type=date&legend=top-left\" \u002F>\n   \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=Runnin4ik\u002Fdpi-detector&type=date&legend=top-left\" \u002F>\n \u003C\u002Fpicture>\n\u003C\u002Fa>","DPI Detector 是一个用于检测互联网审查的工具，能够识别包括TLS、TCP、HTTP、DNS在内的多种封锁方式以及16-20KB连接中断。该项目采用Python编写，支持自定义配置如超时设置、并发数等，并且可以测试特定域名列表或使用预设配置进行检查。它特别适用于需要了解本地网络环境是否存在流量干扰或限制的研究者与开发者，在评估网站访问性及验证是否存在深度包检测（DPI）技术实施方面具有重要作用。此外，通过提供详细的错误分类报告，用户可以更准确地定位问题所在。",2,"2026-06-11 03:49:37","high_star"]