
An intelligent, asynchronous, and database-driven proxy management tool.
Scroll down for Persian Version (برای نسخه فارسی به پایین بروید)
ProxyManager
is a powerful command-line tool designed for developers, penetration testers, and data scientists who need a reliable and fast way to manage proxies. It automates the entire lifecycle: collecting from various sources, multi-layered checking, intelligent scoring, and persistent storage in a database.
- 🚀 Asynchronous Core: Built with
asyncio
andaiohttp
for high-concurrency and blazing-fast performance. - 📚 Multi-Source Collection: Gathers proxies from popular online providers and custom text file URLs.
- ✅ Advanced Health Checks: Tests proxies for TCP connectivity, latency (ms), and download speed (Mbps).
- 📊 Intelligent Scoring: Ranks proxies based on a weighted algorithm considering latency, speed, and uptime.
- 💾 Persistent Database: Saves all proxy data to an SQLite database, preventing data loss and enabling historical analysis.
- ⚙️ Highly Configurable: Easily tweak settings like concurrency, timeouts, and scoring weights via a simple
config.yaml
file. - 🖥️ Interactive CLI Menu: A user-friendly, menu-driven interface powered by
Typer
andQuestionary
for easy operation. - graceful Graceful Shutdown: Safely interrupts long tasks (like re-checking) with
Ctrl+C
and saves the results found so far. - 📤 Flexible Exporting: Exports working proxies into clean
http.txt
,socks4.txt
,socks5.txt
, and a detailedproxies.json
file.
Follow these steps to get ProxyManager
up and running.
1. Clone the repository:
git clone https://github.com/ArixWorks/ProxyManager.git
cd ProxyManager
2. Create and activate a virtual environment: It is highly recommended to use a virtual environment to avoid conflicts with other projects' dependencies.
- On Windows:
python -m venv venv
venv\Scripts\activate
- On macOS and Linux:
python3 -m venv venv
source venv/bin/activate
3. Install the dependencies: With your virtual environment activated, run the following command:
pip install -r requirements.txt
Before running, you can customize behavior by editing the config.yaml
file. Key options include:
concurrency_limit
: Number of proxies to check simultaneously.http_request_timeout
: Timeout for HTTP requests.scoring_weights
: Adjust how latency and speed affect the final score.collector_proxy
: Use a proxy to fetch proxy lists (useful if sources are blocked).
Run the application to launch the main menu:
python -m proxymanager.cli
or
python -m proxymanager
This will launch an interactive menu where you can choose from the following options:
- 🚀 Run Full Workflow: Collect, check, score, and export proxies.
- 🔄 Re-check All Proxies (Default URL): Re-validate all proxies in the database.
- 🎯 Re-check All Proxies (Custom URL): Re-validate proxies against a URL you provide.
- 📥 Collect New Proxies Only: Fetch new proxies without checking them.
- 💾 Export All Proxies to Files: Export all proxies currently in the database.
- 🔥 DELETE ALL PROXIES: Clear the entire database. Use with caution!
This project is built for the community! If you have ideas for new features, find a bug, or want to improve the code, please:
- Open an Issue: Share your suggestions or report problems.
- Submit a Pull Request: Fork the repository, make your changes, and create a PR.
Need a custom version of this tool, a different Python project, or want to collaborate? Feel free to reach out!
- Telegram: @alirezaix
یک ابزار هوشمند، غیرهمزمان و مبتنی بر دیتابیس برای مدیریت پروکسی.
ProxyManager
یک ابزار خط فرمان قدرتمند است که برای توسعهدهندگان، متخصصان امنیت و دانشمندان داده طراحی شده که به روشی سریع و قابل اعتماد برای مدیریت پروکسیها نیاز دارند. این ابزار تمام چرخه عمر پروکسی را خودکار میکند: جمعآوری از منابع مختلف، بررسی چندلایه، امتیازدهی هوشمند و ذخیرهسازی دائمی در دیتابیس.
- 🚀 هسته غیرهمزمان (Asynchronous): ساخته شده با
asyncio
وaiohttp
برای همزمانی بالا و عملکرد فوقالعاده سریع. - 📚 جمعآوری از چند منبع: پروکسیها را از ارائهدهندگان آنلاین محبوب و فایلهای متنی با URL دلخواه جمعآوری میکند.
- ✅ بررسی سلامت پیشرفته: پروکسیها را از نظر اتصال TCP، زمان پاسخدهی (Latency) و سرعت دانلود (Mbps) تست میکند.
- 📊 امتیازدهی هوشمند: پروکسیها را بر اساس یک الگوریتم وزندار با در نظر گرفتن سرعت، تأخیر و کارایی رتبهبندی میکند.
- 💾 دیتابیس پایدار: تمام دادههای پروکسی را در یک دیتابیس SQLite ذخیره میکند.
- ⚙️ قابلیت تنظیم بالا: به راحتی تنظیماتی مانند تعداد تست همزمان، زمان وقفه و وزنهای امتیازدهی را از طریق فایل
config.yaml
تغییر دهید. - 🖥️ منوی تعاملی CLI: یک رابط کاربری دوستانه و مبتنی بر منو که با
Typer
وQuestionary
ساخته شده است. - graceful خروج امن: با فشردن
Ctrl+C
، فرآیندهای طولانی را به صورت امن متوقف کرده و نتایج را ذخیره میکند. - 📤 خروجیهای متنوع: پروکسیهای فعال را در فایلهای مجزای
http.txt
,socks4.txt
,socks5.txt
و یک فایل کاملproxies.json
خروجی میدهد.
برای نصب و اجرای ProxyManager
مراحل زیر را دنبال کنید.
۱. پروژه را کلون کنید:
git clone https://github.com/ArixWorks/ProxyManager.git
cd ProxyManager
۲. محیط مجازی را ساخته و فعال کنید: استفاده از محیط مجازی به شدت توصیه میشود تا وابستگیهای پروژه با سایر پروژهها تداخل نداشته باشد.
- در ویندوز:
python -m venv venv
venv\Scripts\activate
- در مک و لینوکس:
python3 -m venv venv
source venv/bin/activate
۳. وابستگیها را نصب کنید: پس از فعالسازی محیط مجازی، دستور زیر را اجرا کنید:
pip install -r requirements.txt
قبل از اجرا، میتوانید رفتار برنامه را با ویرایش فایل config.yaml
شخصیسازی کنید. تنظیمات کلیدی عبارتند از:
concurrency_limit
: تعداد پروکسیهایی که به صورت همزمان تست میشوند.http_request_timeout
: حداکثر زمان انتظار برای درخواستهای HTTP.scoring_weights
: برای تنظیم تأثیر سرعت و تأخیر در امتیاز نهایی.collector_proxy
: برای استفاده از پروکسی جهت دریافت لیست پروکسیها.
برنامه را با دستور زیر اجرا کنید تا منوی اصلی نمایش داده شود:
python -m proxymanager.cli
یا
python -m proxymanager
این دستور یک منوی تعاملی را اجرا میکند که در آن میتوانید گزینههای زیر را انتخاب کنید:
۱. 🚀 اجرای کامل فرآیند: جمعآوری، تست، امتیازدهی و ذخیره خروجیها. ۲. 🔄 تست مجدد همه پروکسیها (URL پیشفرض): اعتبارسنجی مجدد تمام پروکسیها. ۳. 🎯 تست مجدد همه پروکسیها (URL دلخواه): تست پروکسیها در برابر یک URL دلخواه. ۴. 📥 فقط جمعآوری پروکسیهای جدید: افزودن پروکسیهای جدید به دیتابیس بدون تست. ۵. 💾 ذخیره همه پروکسیها در فایل: خروجی گرفتن از تمام پروکسیهای موجود در دیتابیس. ۶. 🔥 حذف تمام پروکسیها: پاک کردن کل دیتابیس. با احتیاط استفاده شود!
این پروژه برای جامعه کاربری ساخته شده و نظرات شما ارزشمند است! اگر ایدهای برای قابلیتهای جدید دارید یا باگی پیدا کردهاید، لطفاً:
- یک Issue باز کنید: پیشنهادات خود را به اشتراک بگذارید.
- یک Pull Request ارسال کنید: پروژه را Fork کرده، تغییرات خود را اعمال کنید و یک PR بسازید.
اگر به یک نسخه سفارشی از این ابزار، یک پروژه پایتونی دیگر یا همکاری نیاز دارید، با من در ارتباط باشید.
- تلگرام: @alirezaix