Go to file
2019-09-28 07:56:17 +03:00
osx_hooks macOS pyinstaller spec support 2017-05-08 23:01:28 +03:00
.gitignore created gitignore (issue #12) 2014-08-04 02:00:32 +04:00
blockcheck.py Handle exceptions better, do not expect BaseExceptions 2019-09-28 07:56:17 +03:00
blockcheck.spec Generate both standalone EXE and a folder with files 2019-09-18 18:56:01 +03:00
latest_version.txt Version bump (0.0.9.8) 2019-09-18 01:54:45 +03:00
LICENSE Add MIT license file 2014-07-02 19:59:15 +04:00
README.md Update README.md 2019-09-07 20:25:03 +03:00
requirements.txt ASN check 2017-05-15 15:06:44 +03:00
we_need_your_help_isp_list.txt Version bump (0.0.9.4) 2017-06-03 12:53:39 +03:00

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.