🚀 This repository contains checkers that allow you to determine if your "home" ISP has DPI, as well as the specific methods (and their parameters) the censor uses for limitations.
[!WARNING]
All content in this repository is provided for research and educational purposes only.
You are solely responsible for ensuring that your use of any code, data, or information from this repository complies with all applicable laws and regulations in your jurisdiction.
The authors and contributors assume no liability for any misuse or violations arising from the use of this materials.
RU :: IPv4 Whitelisted Subnets => https://hyperion-cs.github.io/dpi-checkers/ru/ipv4-whitelisted-subnets
Allows to detect IPv4 subnets from the so-called "whitelist" in cases where a censor restricts TCP/UDP/etc connections by IP subnets (aka CIDR censorship). There are three control buttons:
This checker has optional GET parameters:
| name | type | default | description |
|---|---|---|---|
| timeout | int | 5000 |
Timeout for connecting/fetching data from host (in ms). |
| sn_sample_size | int | 25 |
The number of random unique hosts that will be checked for each suitable subnet. |
| sn_alive_min | int | 3 |
The minimum number of "alive" hosts in a subnet to declare it as whitelisted. |
| sn_only_24_prefix | bool | true |
Check only subnets with the /24 prefix in each AS (this is usually preferable, as a censor is unlikely to allow larger subnets). |
:warning: There are some nuances to be noted:
443 for selected hosts in each subnet;timeout (see above).RU :: TCP 16-20 => https://hyperion-cs.github.io/dpi-checkers/ru/tcp-16-20
Allows to detect TCP 16-20 blocking method in Russia. The tests use publicly available APIs of popular services hosted by providers whose subnets are potentially subject to limitations. The testing process runs right in your browser and the source code is available. VPN should be disabled during the check.
This checker has optional GET parameters:
| name | type | default | description |
|---|---|---|---|
| timeout | int | 5000 |
Timeout for connecting/fetching data from endpoint (in ms). |
| url | string | — | A custom endpoint to check in addition to the default ones (e.g. your steal-oneself server). The testing endpoint should allow cross-origin requests and provide at least 64KB of data (over the network, including compression, etc.). When not specified, the times and provider options are ignored. |
| times | int | 1 |
How many times to access the endpoint in a single HTTP connection (keep-alived). |
| provider | string | Custom | Provider name (you can set any name). |
See here for details on this blocking method.
RU :: TCP 16-20 DWC (domain whitelist checker)
Allows to find out whitelisted items on DPIs where TCP 16-20 blocking method is applied. This kind of information can be interesting in its own right as well as useful for bypassing limitations.
A list of domains is required as input. Also requires Python 3, the curl utility, and a specially configured server on "limited" networks. See here for details (ready-to-use results are also available for download there).
We would be happy if you could help us improve our checkers through PR or by creating issues. Also you can star the repository so you don't lose the checkers. The repository is available here.