The hyperion-cs/dpi-checkers repository provides a suite of tools designed to help users analyze and detect internet censorship mechanisms employed by their Internet Service Providers (ISPs), particularly those using Deep Packet Inspection (DPI) techniques. The primary audience for these tools includes researchers, privacy advocates, and individuals interested in understanding or circumventing network restrictions. The repository emphasizes its use for educational and research purposes, warning users to comply with local laws and regulations.
The main feature of the repository is the "RU :: DPI-CH" (DPI Comprehensive Checker), a powerful tool written in Go that is not limited by browser sandbox constraints. This checker is intended for general-purpose DPI analysis and offers flexible configuration options. It includes advanced detection methods, such as improved TCP 16-20 analysis, and supports builds for Windows, macOS, and Linux, with Android support planned. The tool can be used to identify various censorship techniques and parameters used by ISPs or data center servers. Detailed documentation is provided to guide users through its capabilities and usage.
For users who prefer browser-based solutions, the repository offers several web checkers. The "RU :: TCP 16-20" checker is designed to detect the TCP 16-20 blocking method commonly used in Russia. It tests connectivity to popular web services hosted by providers potentially subject to restrictions. The checker runs directly in the browser and allows users to customize parameters such as timeout, host, and provider name. It is recommended to disable VPNs during testing to ensure accurate results.
Another notable tool is the "RU :: IPv4 Whitelisted Subnets" checker, which helps users identify IPv4 subnets that are whitelisted by censors who restrict connections based on IP ranges (CIDR censorship). This checker provides three main functions: caching suitable IPv4 subnets in the browser's local storage, checking if these subnets are whitelisted, and saving results to a CSV file. Users can adjust parameters like timeout, sample size, minimum alive hosts, and subnet prefix. The tool is optimized for performance but may produce false negatives due to selective testing and limitations in spoofing TLS SNI within browser environments. It is designed to minimize traffic usage and offers guidance on best practices for running tests, especially on mobile devices.
The repository also includes the "RU :: TCP 16-20 DWC" (Domain Whitelist Checker), which identifies whitelisted domains on DPIs using the TCP 16-20 blocking method. This tool requires a list of domains, Python 3, the curl utility, and a specially configured server on restricted networks. It is useful for both research and practical bypassing of censorship.
Overall, hyperion-cs/dpi-checkers is a comprehensive resource for detecting and analyzing internet censorship. It combines robust standalone applications with accessible web-based tools, offering flexibility for different user needs and environments. The repository encourages community contributions and provides clear instructions for improving the checkers or reporting issues. Its focus on transparency, configurability, and detailed documentation makes it a valuable asset for anyone seeking to understand or challenge network restrictions imposed by ISPs.