https://github.com/1ort/checkr
Blazing fast proxy checker
https://github.com/1ort/checkr
golang proxy proxy-checker proxy-list proxypool socks4 socks5
Last synced: 11 months ago
JSON representation
Blazing fast proxy checker
- Host: GitHub
- URL: https://github.com/1ort/checkr
- Owner: 1ort
- License: mit
- Created: 2023-01-18T14:09:41.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-01-25T15:15:16.000Z (over 3 years ago)
- Last Synced: 2025-04-07T21:07:32.377Z (about 1 year ago)
- Topics: golang, proxy, proxy-checker, proxy-list, proxypool, socks4, socks5
- Language: Go
- Homepage:
- Size: 34.2 KB
- Stars: 14
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Attention! The project is at the initial stage of development, so there may be changes that break backward compatibility
# Checkr - Blazing fast proxy checker

# Installation
from source:
To install from source, you need git and GO
```
git clone https://github.com/1ort/checkr.git
cd checkr/cmd/
go build ./checkr -o checkr
```
via go install:
```
go install github.com/1ort/checkr
```
or download precompiled binary:
https://github.com/1ort/checkr/releases
# Usage
`checkr -file unchecked.txt -url https://www.proxy-list.download/api/v1/get?type=http -type http -o checked.txt -country USA`
If proxy sources are not specified, checkr will collect proxies from public lists
```
-country value
Filter proxies by country IsoCode. You can specify multiple
-file value
Proxy list file. You can specify multiple (-file 1.txt -file 2.txt ... -file n.txt)
-mmKey string
MaxMind License key to download and update GeoLite2-City db.
-nocheck
Do not check proxy
-o string
Output file
-silent
Enable silent mode
-timeout int
Check timeout in seconds (default 10)
-type string
Type of proxy needed. [all/http/socks4/socks5] Doesn't work with --nocheck (default "all")
-url value
Proxy list url. You can specify multiple (-url a.com -url b.com ... --url n.com)
-workers int
Number of parallel checkers (default 500)
```
## Proxy formats
Input format: `host:port`
Output format: `schema://host:port` where `schema` can be `socks5/socks4/http`
## IPGeo Data
The application takes IP geolocation data from the GeoLite2-City database provided by MaxMind. To use an up-to-date database, you need to specify the License Key as the --mmKey flag.
`checkr -country US -mmKey xxxxxxxxxxxxxxxx`
You can get the license key after creating an account for free at this link: https://www.maxmind.com/en/accounts/current/license-key
You do not need to specify the key as a flag each time, since the database file is saved to the mmdb folder next to the executable file.
Each time you use -mmKey, the local database is checked for relevance and the newest version is downloaded.
It is recommended to update the geo base at least once a week
## Notes
If you do not specify the proxy format, or select all, the check speed will be much slower, since each proxy will be checked for compliance with each protocol. Since the server can support different protocols on the same port, these proxies will be recorded separately. For example:
```
socks5://151.151.151.151:123
socks4://151.151.151.151:123
http://151.151.151.151:123
```
# TODO
- [ ] Support proxy with authentication
- [x] Checking proxy by geo
- [ ] built-in server with rotation
- [ ] saving the proxy to the database