Language: English · Türkçe
An async Python tool that profiles a proxy list for liveness, anonymity level, and optional access checks — in seconds.
# proxine collects the list, proxyprof filters — elite proxies ready in seconds
proxine -p http -s | proxyprof http -l 1 -o working.lst- 🚀 Fast — async (1,000+ concurrent probes), non-blocking DNS via aiodns, no thread bloat
- 🧠 Smart — SQLite reputation + exponential probation: a 100k list skips the dead tail automatically (~85% less work)
- 🎯 Accurate classification — Elite / Anonymous / Distorting / Transparent, HTTPS CONNECT test, MITM detection
- 🌍 Free geolocation — with your own CF-protected judge, no extra API or DB
- 🛡️ MITM-suspected filter — TLS-tampering honeypots are flagged and dropped
- 🔄 proxine pipeline compatible — stdin/stdout by default, no extra config
- 🌐 Multilingual —
tranden; system locale auto-detected
Python ≥ 3.10 required.
git clone https://github.com/enseitankado/proxy-profiler.git
cd proxy-profiler
python3 -m venv .venv && source .venv/bin/activate
pip install .
proxyprof --helpAuto-bootstrap when dependencies are missing
If aiohttp / aiohttp-socks / aiodns aren't installed and you run on a TTY, you get a single prompt: "Auto-setup will create ./.venv and install … Proceed? [Y/n]". Saying Y creates a local .venv, installs the dependencies, and restarts proxyprof inside that venv's Python. No sudo, no system package changes, no PEP 668 fight.
In pipelines (no TTY), the prompt is skipped and a static error message is returned so your script doesn't hang on a missing answer.
# 1) Get a list (proxine, your own source, or any public list)
proxine -p http -s > raw.lst
# 2) Keep only elite + live ones
proxyprof http -f raw.lst -l 1 -o working.lst
# 3) Stricter: also require gatekeeper access
proxyprof http -f raw.lst --access-test -o production.lstWhile scanning, stderr renders a live table + progress + two Unicode summary boxes at the end:
┌───────┬────────┬───────┬───────────────────────┬───────┬────────┬─────────────────┬─────────┬────────┬────────┬──────┬────────┐
│ # │ STATUS │ BUCKET│ PROXY │ PROTO │ LEVEL │ OUTBOUND │ COUNTRY │ TIME │ TUNNEL │ MITM │ ACCESS │
├───────┼────────┼───────┼───────────────────────┼───────┼────────┼─────────────────┼─────────┼────────┼────────┼──────┼────────┤
│ 3/30 │ ok │ HOT │ 8.211.194.85:4444 │ http │ L1 │ 8.211.194.85 │ US │ 1.2s │ ✓ │ ✓ │ ✓ │
│ 7/30 │ ok │ NEW │ 5.6.7.8:1080 │ http │ L2d │ 5.6.7.8 │ DE │ 0.8s │ ✓ │ ✓ │ ✓ │
│ 12/30 │ filter │ WARM │ 9.10.11.12:3128 │ http │ L1 │ 9.10.11.12 │ — │ 2.1s │ ✓ │ × │ ✓ │
└───────┴────────┴───────┴───────────────────────┴───────┴────────┴─────────────────┴─────────┴────────┴────────┴──────┴────────┘
[████████████████░░░░] 80% 24/30 ok:3 fail:21 skip:0 elapsed: 9.4s
| Topic | Detail |
|---|---|
| 📖 Usage — flags and examples | All CLI flags, defaults, usage examples |
| 📊 Output — stdout, stderr, boxes | Table columns, STATUS codes, CONFIG/RESULT boxes |
| 🎭 Anonymity levels | L1/L2/L2d/L3 detection rules, distorting limits |
| 🔬 Filters and metrics | Tunnel test, access test, speed percentiles, geolocation |
| 💾 Reputation & probation | HOT/WARM/NEW/COLD buckets, exponential probation, typical savings |
| ☁️ Cloudflare-aware judge | proxyjudge.php setup, country info, visit log, identity whitelist |
| 🌐 Localization | Language selection, adding a new language |
| 🏗️ Architecture | File layout, modules, concurrency model |
- Proxine — Aggregator that pulls raw proxy lists from 60+ open sources. proxyprof's main input source.
- EliteProxySwitcher — Windows GUI.
- Open Proxy Checker — Windows list validator.
MIT. Derivative works should keep the original author (Özgür Koca) attribution. Software is provided "as is".
Özgür Koca — vocational high-school teacher. GitHub: enseitankado · Blog: tankado.com