mirror of
https://github.com/ValdikSS/blockcheck.git
synced 2026-09-14 11:05:48 +05:00
60 lines
5.0 KiB
Markdown
60 lines
5.0 KiB
Markdown
BlockCheck
|
||
==========
|
||
|
||
**[Сообщение для жителей Украины | повідомлення для мешканців України](https://github.com/ValdikSS/blockcheck/wiki/Сообщение-украинцам)**
|
||
|
||
Утилита для определения типа блокировок сайтов из **единого реестра запрещенной информации** на стороне провайдеров **Российской Федерации**.
|
||
|
||
Данная утилита позволяет определить:
|
||
|
||
* Подмену DNS-ответов
|
||
* Перенаправление сторонних DNS-серверов на провайдерские
|
||
* Блокировку сторонних DNS-серверов
|
||
* Блокировку всей зоны (поддоменов) заблокированного домена
|
||
* «Обычный» DPI (фильтрация URL на определенных IP-адресах и портах)
|
||
* «Полный» DPI (фильтрация URL на всех IP-адресах и/или портах)
|
||
* Подмену SSL (HTTPS)-сертификата (прослушивание HTTPS-трафика)
|
||
* Блокировку по IP-адресу
|
||
|
||
Также приложение обнаруживает пассивный DPI, выполняет тесты для обхода активного DPI, если он обнаружен на стороне провайдера. На данный момент реализованы следующие техники:
|
||
|
||
* Дополнительный пробел после GET
|
||
* Перенос строки перед GET
|
||
* Фрагментирование заголовка
|
||
* Точка в конце домена
|
||
* Табуляция в конце домена
|
||
* Заголовок host вместо Host
|
||
* Перенос строки в заголовках в UNIX-стиле
|
||
|
||
Более подробно о видах DPI и типах подключения читайте в Wiki проекта: [Типы DPI](https://github.com/ValdikSS/blockcheck/wiki/Типы-DPI)
|
||
|
||
Приложение автоматически отправляет статистику об используемом типе блокировки на сервер. Если вы используете сторонний DNS, тестируете разные способы обхода блокировок и запускаете программу для определения их эффективности, либо просто не хотите отправлять информацию о вашем провайдере на сервер, пожалуйста, пользуйтесь параметром `--no-report`.
|
||
|
||
[http://habrahabr.ru/post/229377/](http://habrahabr.ru/post/229377/) — статистика по провайдерам (устарела)
|
||
|
||
### Запуск
|
||
Проще всего воспользоваться бинарными сборками под **Windows**, **Linux** и **macOS** из раздела [Releases](https://github.com/ValdikSS/blockcheck/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.
|