BlockCheck ========== Утилита для определения типа блокировок сайтов из единого реестра запрещенной информации на стороне провайдера. Данная утилита позволяет определить: * Подмену DNS-ответов * Перенаправление DNS-серверов * Блокировку DNS-серверов * ~~Блокировку всей зоны (поддоменов) заблокированного домена~~ (временно не работает) * "Обычный" DPI (фильтрация URL на определенных IP-адресах и портах) * "Полный" DPI (фильтрация URL на всех IP-адресах и/или портах) * Подмену SSL (HTTPS)-сертификата (прослушивание HTTPS-трафика) * Блокировку по IP-адресу Также приложение выполняет тесты для обхода DPI, если он обнаружен на стороне провайдера. На данный момент реализованы следующие техники: * Дополнительный пробел после GET * Перенос строки перед GET * Фрагментирование заголовка * Точка в конце домена * Табуляция в конце домена * Заголовок host вместо Host * Перенос строки в заголовках в UNIX-стиле Более подробно о видах DPI и типах подключения читайте в Wiki проекта: [Типы DPI](https://github.com/ValdikSS/blockcheck/wiki/Типы-DPI) Приложение автоматически отправляет статистику об используемом типе блокировки на сервер. http://habrahabr.ru/post/229377/ — статистика по провайдерам ### Установка Для работы скрипта требуется Python >= 3.4 с модулем dnspython. Установить его можно из репозитория вашего дистрибутива, или используя pip: `python3 -m pip install -r requirements.txt` ### Использование Приложение запускается в графическом режиме по умолчанию, если в систему установлен Tkinter. Вы можете запустить его в консольном режиме вручную, используя флаг `--console`. Параметр `--no-report` отключает отправку результатов тестирования на сервер. `--force-dpi-check` выполнит проверку DPI, даже если сайты не заблокированы.