Is Your ISP Inspecting Your Traffic? These Open-Source Checkers Will Tell You
You've probably had that nagging suspicion—certain sites load fine, others stall or mysteriously reset, and you're never quite sure whether it's your connection, the site itself, or something in between watching your packets. That "something in between" is often DPI, or deep packet inspection, and the dpi-checkers project gives you a way to actually test for it instead of guessing.
What It Does
This repository is a collection of checkers designed to determine whether your residential ISP (or a server sitting in a data center) is running DPI, and—more usefully—which specific blocking methods and parameters the censor is using. Rather than a single monolithic tool, it's a set of checkers you can pick from depending on how deep you want to go.
The centerpiece is DPI-CH, a comprehensive checker written in Go. It's described as the "big brother" of the other tools, not constrained by a browser sandbox, and it's built for general-purpose DPI analysis with an extremely flexible configuration. Builds are available for Windows, macOS, Linux, and Android, with dedicated documentation in the repo. Alongside it are browser-based checkers, including one for detecting the TCP 16-20 blocking method in Russia (with a host-alive check) and one for spotting IPv4 whitelisted subnets—the CIDR-based censorship where a censor restricts connections by IP ranges. The web checkers run right in your browser, and their source is available for inspection.
Why It's Cool
-
It goes past "is it blocked?" to "how is it blocked?" Most connectivity tests just tell you something failed. These checkers try to identify the actual method and its parameters, which is far more useful if you're trying to understand or work around restrictions.
-
The browser checkers are genuinely clever about constraints. The TCP 16-20 checker accepts optional GET parameters—a custom
timeout, plus ahostandproviderso you can test your own server, and it explicitly notes that CORS policy doesn't matter for the custom host. That's a small detail that shows the authors thought about real-world testing. -
The whitelist checker has a thoughtful workflow. It splits into three buttons—Cache, Check, and Save. The Cache step fetches and stores suitable IPv4 subnets in local storage (they survive reloads and browser restarts), and the README points out the practical wisdom of running that step when your provider isn't using whitelists, like on your home Wi-Fi. Results export to CSV. That kind of sequencing advice comes from people who've actually used the tool.
-
Multiple form factors for multiple needs. If the browser sandbox is too limiting, you've got the Go-based DPI-CH with cross-platform builds. If you just want a quick in-browser answer, the web checkers are right there. One caveat worth noting: some providers block access to the GitHub Pages host, in which case you can preload the checker in your browser.
How to Try It
-
Start with the browser checkers if you want a quick answer. For the TCP 16-20 test, head to
https://hyperion-cs.github.io/dpi-checkers/ru/tcp-16-20. Make sure your VPN is disabled during the check—it'll skew the results. -
Customize the test if needed. The TCP 16-20 checker accepts URL parameters like
?timeout=20000&host=your-server.example&provider=MyProviderto extend the timeout or add your own endpoint. -
For whitelist detection, use
https://hyperion-cs.github.io/dpi-checkers/ru/ipv4-whitelisted-subnets. Run Cache first (ideally on a network without whitelists), then Check, then Save your results to CSV. -
For deeper analysis, grab DPI-CH from the releases page and read the documentation for configuration details.
The full repo lives at github.com/hyperion-cs/dpi-checkers, and there's a Telegram community at @dpi_checkers if you want to compare notes.
One important note from the README: everything here is provided for research and educational purposes only, and you're solely responsible for making sure your use complies with the laws in your jurisdiction. The authors take no liability for misuse. Take that seriously.
Final Thoughts
This is a niche toolkit aimed at a specific audience—people in regions dealing with network censorship who want concrete data rather than vague suspicions, plus researchers studying how filtering actually works. The browser checkers lower the barrier to entry considerably, while DPI-CH gives the more technical crowd room to dig in. It's not a general-purpose networking tool, but if you've ever wondered what's really happening to your traffic, it's a solid place to find out.