Skip to content

enseitankado/proxy-profiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛰️ Proxy Profiler

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

Why proxyprof?

  • 🚀 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
  • 🌐 Multilingualtr and en; system locale auto-detected

Installation

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 --help
Auto-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.


60-second Quickstart

# 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.lst

While 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

Documentation

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

Related tools


License

MIT. Derivative works should keep the original author (Özgür Koca) attribution. Software is provided "as is".

Author

Özgür Kocavocational high-school teacher. GitHub: enseitankado · Blog: tankado.com

Releases

No releases published

Packages

 
 
 

Contributors

Languages