Kuucheen / KC-Checker

Advanced open-source proxy checker written in go
MIT License
42 stars 7 forks source link
checker go golang proxies proxy proxy-checker proxy-checker-free proxy-checker-github proxychecker
logo

KC Checker

Experience the speed of a blazingly fast proxy checker
where checking is done with style


downloads license issues


preview


Features


Requirements

[!IMPORTANT] Your terminal needs to support true color, and using different fonts in your terminal may cause display errors.

These are tested terminals on different operating systems:

System Tested Notes
Windows 11
Works fine
Windows 10
Works without true color
Linux (ubuntu)
Works fine
Mac OS
Should work fine

Getting started

Download latest release & unzip the file

Windows
Double click on KC-Checker.exe

Linux
Open terminal and enter

chmod +x KC-Checker

Now run it with

./KC-Checker

Or build it yourself

  1. Install Prerequisites:

  2. Clone the Project: Open your terminal and run: git clone https://github.com/Kuucheen/KC-Checker.git

  3. (OPTIONAL) Set Up GeoLite2 Database: If you want to determine the country and type (ISP, Datacenter, or Residential) of the proxies, you'll need to download the GeoLite2 Country and GeoLite2 ASN Database from MaxMind.

    • After downloading, replace the existing databases in the helper directory.
    • Ensure they have the same names: GeoLite2-ASN.mmdb and GeoLite2-Country.mmdb.

    Note: These databases are not included in the repository due to their licensing restrictions. However, they are bundled in the prebuilt version.


Build

Using provided scripts ### Windows Double click on `start.bat` ### Linux Open terminal in the directory and make the script executeable `chmod +x start.sh` Run it with `./start.sh` Now you have an executable. You can run it like described in **Getting Started**
Using terminal Navigate to the directory cd KC-Checker Install dependencies go get . Build with go build . Now you have an executable. You can run it like described in **Getting Started**

How to Use

Navigation: Use the arrow keys on your keyboard to navigate through the program's interface. Here’s a quick guide to the controls:

Key Description
↑ Up Move up
↓ Down Move down
← Left Move left
→ Right Move right
↵ Enter Select/Confirm

Saving Proxies: When you save the proxies at the end of a checking progress, they will always be stored in the output folder.

Customize Settings

[!NOTE] For most users, the default settings will probably be sufficient.

Details for settings.json 1. **threads**:
Maximum number of threads
2. **retries**:
Number of retries for a request
3. **timeout**:
Timeout duration for requests in ms
4. **privacy_mode**:
If set to true, the proxies will be blured with "*" while checking 5. **copyToClipboard**:
If set to true, all proxies checked will be copied to clipboard when saving them to a file 6. **autoSelect**:
When setting one or more protocols are set to true, it will automatically start checking with the selected protocols. 7. **autoSave**:
**timeBetweenSafes**: Seconds between the autoSave
**ip:port**: If set to true it will automatically save the proxies with these format every timeBetweenSafes seconds
**protocol://ip:port**: Same here
**ip:port;time**: Same here
**custom**: You can set a custom autoSave format here. If its not empty it will save it with this format. At the end of a checking process theres an option for "CUSTOM", where you can build your own output. You can put the output you built there in here.
8. **timeBetweenRefresh**:
This is how often the screen updates in ms. If you experience high CPU usage, it is recommended to set it higher. 9. **iplookup**:
A website that returns the ip. This is needed to know if the proxies are Transparent. The website will only be used once when starting the checker. 10. **judges_threads**:
Maximum threads for selecting the judge 11. **judges_timeout**:
Timeout duration of judges in ms 12. **judges**:
**url**: This is the url the proxy will connect to while checking
**regex**: The proxy will only be valid if the regex is found. When "default" is used it will check the headers. Headers are needed to determine the anonymity level of the proxies.
If there are multiple judges the checker will use the fastest one 13. **blacklisted**:
Websites that contain blacklisted ips. These ips won't be checked 14. **bancheck**:
If a website URL is provided, the program verifies whether the proxy can successfully access the site. Proxies that have been checked against the website will be organized and stored in the `banchecked` directory. 15. **keywords**:
The program inspects the content of the website (in the bancheck option) accessed through the proxy to determine if it contains the specified keywords or phrases. If the proxy successfully reaches the site and the desired keywords are found it will safe them in the `banchecked` directory. If the keywords are not found they will not be safed in the `banchecked` directory (even when the proxy was able to reach the site). 16. **transport**:
These are the settings used for making a request. Only touch this option if you know what you are doing.

You can blacklist custom proxies by adding them in blacklisted.txt

License

The code for this project is licensed under the MIT License.

The GeoLite2 databases used by this project are provided by MaxMind and are licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.

Other

this tool is made for educational purposes only

If you need help with anything join our discord server

Help me keep my projects open source by sponsoring me