Find working IP + SNI pairs in seconds. Generate ready-to-use VLESS configs.
Paste your results directly into NetLeafy and connect.
- ๐ Dual Scan Modes โ IP/SNI pair discovery or full VLESS config generation
- โก Massively Parallel โ up to 150 threads, scans thousands of combinations fast
- ๐ฑ Termux Ready โ auto wake-lock, mobile-safe profiles, tested on Android
- ๐ก๏ธ 2-Stage Verification โ validates TLS handshake AND HTTP response, eliminates fake results
- ๐ DNS Bypass Support โ Bypass Shecan
- ๐ฏ Smart Filtering โ drops blocked, reset, and DPI-injected responses automatically
- ๐ Auto-saves Results โ timestamped output to your Downloads folder
- ๐ฅ๏ธ Beautiful CLI โ real-time progress bar, colour-coded hits, clean summary
| Requirement | Notes |
|---|---|
| Python 3.7+ | python --version to check |
| curl | Pre-installed on Windows 10+, macOS, most Linux. Termux: pkg install curl |
| No pip dependencies | Pure standard library |
# Clone the repo
git clone https://github.com/Code-Leafy/NetLeafyScanner.git
cd NetLeafyScanner
# Run
python scanner.pygit clone https://github.com/Code-Leafy/NetLeafyScanner.git
cd NetLeafyScanner
python3 scanner.py# Install dependencies
pkg update && pkg install python curl git
# Clone and run
git clone https://github.com/Code-Leafy/NetLeafyScanner.git
cd NetLeafyScanner
python scanner.pyTip for Termux: Keep your screen on or the scan may be killed. The tool calls
termux-wake-lockautomatically โ make sure Termux:API is installed (pkg install termux-api).
Run the script and follow the interactive prompts:
python scanner.py
โโ Scan Mode
[1] IP/SNI Pair Discovery find working IP + SNI pairs
[2] VLESS Config Generator paste a base VLESS, get optimised configs
- Mode 1 โ No VLESS needed. Finds and lists working IP/SNI pairs you can paste into NetLeafy.
- Mode 2 โ Paste any working VLESS link as a base. The scanner tests it against all IPs and SNIs and returns latency-sorted configs.
โโ DNS / Network Mode
[1] Direct (No Bypass)
[2] Shecan DNS Bypass
If your network blocks the domains directly, use Shecan. Register your IP first at shecan.ir.
โโ Performance Profile
[1] Low-End Mobile / Termux 20 threads
[2] Mid-Range Mobile 40 threads
[3] Desktop / PC 80 threads
[4] High-End PC / Server 150 threads
[5] Custom set your own
| Profile | Device | Threads | Timeout |
|---|---|---|---|
| 1 | Low-end mobile / Termux | 20 | 5s |
| 2 | Mid-range mobile | 40 | 4s |
| 3 | Desktop / PC | 80 | 3s |
| 4 | High-end PC / Server | 150 | 2s |
| 5 | Custom | you choose | you choose |
โ ๏ธ On Termux, stick to profiles 1โ2. Higher thread counts can cause crashes on low-RAM devices.
Results are saved automatically to your Downloads folder (or current directory as fallback):
~/Downloads/NetLeafy_pairs_20250515_143022.txt
~/Downloads/NetLeafy_vless_20250515_143022.txt
Each file contains:
==================================================
IPs โ copy and paste into NetLeafy
==================================================
104.21.60.220
172.67.150.14
...
==================================================
SNIs โ copy and paste into NetLeafy
==================================================
kubernetes.io
helm.sh
...
==================================================
VLESS Configs โ sorted fastest first (Mode 2 only)
==================================================
# 312ms 104.21.60.220 kubernetes.io
vless://...
Once the scan finishes, copy the IPs and SNIs directly into:
| Category | Count |
|---|---|
| IPs scanned | 130+ |
| SNIs / Domains | 70+ |
| Total combinations | ~9,100 per scan |
All IPs are public CDN edge nodes. All SNIs are public open-source project domains.
For each IP ร SNI pair:
โโ curl resolves the domain to the target IP
โโ TLS handshake attempted
โโ Fail (timeout / reset / 000) โ dropped
โโ Success โ HTTP response checked
โโ Blocked code (403/502/521...) โ dropped
โโ Valid response โ recorded โ
Mode 1 records the working pair.
Mode 2 measures total round-trip time and builds a VLESS config with the real latency in the remark.
NetLeafyScanner/
โโโ scanner.py # Main scanner
โโโ README.md # This file
โโโ LICENSE # MIT License
Pull requests are welcome. For major changes, open an issue first.
- Fork the repo
- Create your branch:
git checkout -b feature/my-feature - Commit your changes:
git commit -m 'Add my feature' - Push:
git push origin feature/my-feature - Open a Pull Request
This project is licensed under the MIT License โ see the LICENSE file for details.