A command-line and Textual TUI utility for scanning VLESS/VMess/Trojan proxy configs, finding Cloudflare edge IPs, and evaluating connection performance.
- Parses proxy config URIs from files, subscriptions, or templates
- Resolves domain names to Cloudflare IPs
- Measures latency, TLS handshake time, and download speed against Cloudflare endpoints
- Ranks candidate IPs and exports results to CSV and JSON files
- Supports an interactive TUI or non-interactive headless mode
- Includes Cloudflare "clean IP" subnet scanning and Xray config/testing helpers
- Install Python 3.11+ and required packages.
- From the project root:
python3 main.py -i config.txt- For headless mode without the TUI:
python3 main.py -i config.txt --no-tui.
├── README.md
├── config.txt # Example input config file
├── docs/ # Generated documentation
│ ├── architecture.md
│ └── usage.md
├── main.py # CLI entrypoint and execution flow
├── results/ # Scan results and logs are written here
├── src/ # Application source modules
│ ├── app.py # Textual TUI implementation
│ ├── config_parse.py # URI parsing and input loading
│ ├── constants.py # Defaults, Cloudflare ranges, presets
│ ├── core.py # Scan orchestration and export logic
│ ├── deploy_utils.py # Linux Xray deployment helpers
│ ├── models.py # Data models and score calculations
│ ├── rate_limiter.py # Cloudflare request rate limiting
│ ├── speed_test.py # Latency and throughput tests
│ ├── tui.py # Textual views and UI actions
│ ├── utils.py # Console helpers and utilities
│ └── xray_utils.py # Xray config generation and URI builders
docs/architecture.md— architecture and module interactiondocs/usage.md— command usage, input formats, examples
- The app writes results and debug logs to
results/ - Supported input file formats:
.txt,.json,.conf,.lst config.txtis a sample config file with VLESS/Trojan URIs
