proxy-checker

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 7, 2025 License: MIT

README

Proxy Checker

GitHub

Go utility for checking proxy server availability.

Description

The program receives a list of proxy servers and checks their availability by trying to connect to the specified target resource through each proxy.

Install

  git clone https://github.com/crewcrew23/proxy-checker.git
  cd proxy-checker
  make build # or go build -o bin/proxy-checker cmd/app/main.go

  cd bin #or set proxy-checker/bin in Env Var

Usage

Parameters
Flag Description Required
--input Path to file with proxy list (one per line)
--type Proxy type: http or socks5 Default http:(all proxies in the file must be of the same type)
--target URL of the resource through which the availability of the proxy is checked
--timeout Connection timeout in seconds (default 5)
--save File for saving working proxies (in CSV format)
--savetype file extension json/csv (default: json)
--threshold threshold of the number of proxies in the list, upon reaching which the worker pool will be used for processing (default 100)
./proxy-checker --input <file_with_proxy> --type <proxy_type> --target <target_URL> --timeout <second> --save <output_file>
./proxy-checker --input <file_with_proxy> --type <proxy_type> --target <target_URL> --timeout <second> --save <output_file> --savetype csv

if the number of proxies in the input file is larger, than --threshold or if you need to change the threshold

./proxy-checker --input proxies-socks5.txt --type socks5 --target https://www.google.com --timeout 5 --save good-socks5 --threshold 50
Example
./proxy-checker --input proxies-socks5.txt --type socks5 --target https://www.google.com --timeout 5 --save good-socks5
./proxy-checker --input proxies-socks5.txt --type socks5 --target https://www.google.com --timeout 5 --save good-socks5 --savetype csv

Input file format:

proxy without auth
host:port protocol://host:port

proxy with auth
username:password@host:port protocol://username:password@host:port

Example
127.0.0.1:8888
user:pass@127.0.0.1:8889
http://user:pass@127.0.0.1:8889

Testing

make test-unit
run unit tests
make test-e2e
will run the docker-compose with proxy
if all good, you will see like that

🔍 Checking 3 proxies...
✅ http://user:pass@127.0.0.1:8889 [618.2278ms]
✅ user:pass@127.0.0.1:8889 [618.2278ms]
✅ 127.0.0.1:8888 [618.2278ms]

Total: 3, Alive: 3
✅ Saved good proxies to test_bin\good-http.csv
🔍 Checking 3 proxies...
✅ socks5://test:secret@127.0.0.1:1081 [643.6372ms]
✅ 127.0.0.1:1080 [643.636ms]
✅ test:secret@127.0.0.1:1081 [642.626ms]

Total: 3, Alive: 3
✅ Saved good proxies to test_bin\good-socks5.csv

Directories

Path Synopsis
cmd
app command
internal
test

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL