Skip to content

ValdikSS/blockcheck

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

BlockCheck

Сообщение для жителей Украины | повідомлення для мешканців України

Утилита для определения типа блокировок сайтов из единого реестра запрещенной информации на стороне провайдеров Российской Федерации.

Данная утилита позволяет определить:

  • Подмену DNS-ответов
  • Перенаправление сторонних DNS-серверов на провайдерские
  • Блокировку сторонних DNS-серверов
  • Блокировку всей зоны (поддоменов) заблокированного домена
  • «Обычный» DPI (фильтрация URL на определенных IP-адресах и портах)
  • «Полный» DPI (фильтрация URL на всех IP-адресах и/или портах)
  • Подмену SSL (HTTPS)-сертификата (прослушивание HTTPS-трафика)
  • Блокировку по IP-адресу

Также приложение обнаруживает пассивный DPI, выполняет тесты для обхода активного DPI, если он обнаружен на стороне провайдера. На данный момент реализованы следующие техники:

  • Дополнительный пробел после GET
  • Перенос строки перед GET
  • Фрагментирование заголовка
  • Точка в конце домена
  • Табуляция в конце домена
  • Заголовок host вместо Host
  • Перенос строки в заголовках в UNIX-стиле

Более подробно о видах DPI и типах подключения читайте в Wiki проекта: Типы DPI

Приложение автоматически отправляет статистику об используемом типе блокировки на сервер. Если вы используете сторонний DNS, тестируете разные способы обхода блокировок и запускаете программу для определения их эффективности, либо просто не хотите отправлять информацию о вашем провайдере на сервер, пожалуйста, пользуйтесь параметром --no-report.

http://habrahabr.ru/post/229377/ — статистика по провайдерам (устарела)

Запуск

Проще всего воспользоваться бинарными сборками под Windows, Linux и macOS из раздела Releases. Они самодостаточны и не требуют установки.

Если вы хотите изменить исходный код, вам потребуется Python >= 3.4 с модулем dnspython. Установить его можно из репозитория вашего дистрибутива, или используя pip:

python3 -m pip install -r requirements.txt

Использование

Приложение запускается в графическом режиме по умолчанию, если в систему установлен Tkinter.
--console отключает графический интерфейс и принудительно активирует консольный режим.
--no-report отключает отправку результатов тестирования на сервер. Пожалуйста, используйте эту опцию, если вы экспериментируете со способами обхода блокировок.
--force-dpi-check выполнит проверку DPI, даже если сайты не заблокированы.
--disable-ipv6 отключает все проверки, связанные с IPv6.

Это не все доступные опции. Запустите программу с парамером --help для получения подробной информации.

Сборка исполняемого файла

Для сборки исполняемого файла для Windows, Linux и macOS:

  1. Установите Python 3, с официального сайта или из репозиториев вашего дистрибутива
  2. python -m pip install -r requirements.txt
  3. python -m pip install pyinstaller
  4. pyinstaller blockcheck.spec

Исполняемый файл будет в директории dist.

About

Russian ISP blocking type checker NOTE: NOT WORKING CURRENTLY. ВНИМАНИЕ: НЕ РАБОТАЕТ НА ТЕКУЩИЙ МОМЕНТ

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages