Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ValdikSS/blockcheck
Russian ISP blocking type checker NOTE: NOT WORKING CURRENTLY. ВНИМАНИЕ: НЕ РАБОТАЕТ НА ТЕКУЩИЙ МОМЕНТ
https://github.com/ValdikSS/blockcheck
censorship-circumvention deep-packet-inspection dns dpi
Last synced: 3 months ago
JSON representation
Russian ISP blocking type checker NOTE: NOT WORKING CURRENTLY. ВНИМАНИЕ: НЕ РАБОТАЕТ НА ТЕКУЩИЙ МОМЕНТ
- Host: GitHub
- URL: https://github.com/ValdikSS/blockcheck
- Owner: ValdikSS
- License: mit
- Created: 2014-06-30T14:00:19.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2022-03-29T13:29:05.000Z (over 2 years ago)
- Last Synced: 2024-04-27T14:32:56.980Z (7 months ago)
- Topics: censorship-circumvention, deep-packet-inspection, dns, dpi
- Language: Python
- Homepage:
- Size: 1.94 MB
- Stars: 1,320
- Watchers: 113
- Forks: 140
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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.