Skip to content

Jesewe/proxy-checker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProxyChecker

ProxyChecker

A fast, concurrent proxy checker for HTTP, SOCKS4, and SOCKS5 proxies — with a fully dark, modern GUI.

Downloads Platforms License Version

OverviewInstallationUsageConfigurationTroubleshooting


Overview

ProxyChecker verifies HTTP, SOCKS4, and SOCKS5 proxy lists by sending concurrent test requests. v2.0 is a ground-up rewrite: the codebase is split into focused modules, a thread-safe concurrency model replaces the original fragile implementation, and the GUI is fully rebuilt with a dark theme, live results table, and persistent settings.


Installation

Prerequisites

  • Python 3.8 or later
  • pip

Steps

  1. Clone the repository:

    git clone https://github.com/Jesewe/proxy-checker.git
    cd proxy-checker
  2. Install dependencies:

    pip install -r requirements.txt

Usage

Launching

python main.py

The app opens on the Settings tab. Configure your sources and parameters, then click ▶ Start Checking.

Workflow

  1. Settings tab — configure checker parameters, proxy sources, and output directory
  2. Click ▶ Start Checking — the app switches to the Log tab and begins fetching
  3. As working proxies are found, the app switches to the Live Results tab automatically
  4. After checking completes, the enrichment pass fills in anonymity tiers and country data in-place
  5. Use 🔍 View Full Results to open the filterable results dialog, or 💾 Save Log to export the log

Controls

Button Action
▶ Start Checking Begin the full fetch → check → enrich → export pipeline
⏸ Pause / ▶ Resume Suspend or continue checking with zero CPU overhead
✕ Cancel Stop all threads and abort gracefully
🔍 View Full Results Open filterable results dialog (available after run completes)
💾 Save Log Save the log output to a text file

Configuration

All settings are persisted automatically between sessions.

Checker Settings

Setting Description Default
Timeout (s) Per-request timeout 3
Max Retries Retry attempts for failed source fetches 3
Retry Delay (s) Delay between retry attempts 1.0
Max Workers Concurrent checking threads 50
Test URL URL used to verify each proxy http://www.google.com
User-Agent Custom User-Agent header (optional)
Detailed Results Enable response time, anonymity tier, and geo-location Off
Export Format Output file format: txt, csv, or json txt

Output Directory

Working proxies are saved to the chosen output directory (default: ~/Documents/proxy-checker). One file is created per proxy type (e.g. http.txt, socks4.csv). A history.log is appended after each run.

Proxy Sources

The sources table lists the proxy list URLs to fetch. Each row has an enable/disable checkbox, a type label (used as the output filename), and a URL. Rows can be added or removed at runtime.

Default sources (from TheSpeedX/PROXY-List):

Type URL
http https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/http.txt
socks4 https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/socks4.txt
socks5 https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/socks5.txt

Detailed Results Mode

When Detailed Results is enabled, each confirmed working proxy goes through a second enrichment pass:

  • Response time — measured during the checking phase (millisecond precision)
  • Anonymity tier — classified as elite, anonymous, or transparent via httpbin.org/get
  • Geo-location — country, region, and city fetched via ip-api.com/batch (rate-limited automatically)

Enrichment runs concurrently after the main checking pass and updates the live results table in-place as each proxy is processed.

The View Full Results dialog supports filtering by maximum response time and exporting the filtered table to CSV.


Troubleshooting

Many connection errors / low working count Reduce Max Workers or increase Timeout. Some proxy sources have high churn; try re-running shortly after.

Geo-location shows empty for many proxies ip-api.com has a free-tier rate limit of 45 requests/minute. The built-in rate limiter handles this automatically, but very large working sets will take longer to enrich.

Anonymity detection shows "unknown" httpbin.org may be blocked or rate-limiting. The checker treats failed anonymity lookups as unknown and continues — it does not block the export.

App starts slowly Client IP detection runs in the worker thread and does not block the UI. If startup feels slow, check your network connection.

Output directory permission error Choose a directory your user account has write access to, or run with appropriate permissions.


License

MIT License — see the LICENSE file for details.

About

This script is designed to check the availability of HTTP, SOCKS4, and SOCKS5 proxies from various online sources.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages