KC Checker
Experience the speed of a blazingly fast proxy checker
where checking is done with style
Features
- Multi-Threaded
- Keyword website check
- Verify whether the proxy can access a specific website
- Sleek and intuitive UI for a beautiful user experience
- Highly customizable settings to tailor the tool to your needs
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
-
Install Prerequisites:
-
Clone the Project:
Open your terminal and run:
git clone https://github.com/Kuucheen/KC-Checker.git
-
(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