├── .gitattributes ├── Anonymous ├── http.txt ├── https.txt └── socks5.txt ├── LICENSE ├── README.md ├── Transparent ├── http.txt ├── https.txt └── socks5.txt ├── install.bat ├── invalid.txt ├── main.py ├── proxies.txt ├── requirements.txt └── run.bat /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /Anonymous/http.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seadhy/proxy-checker/d39670248056b55ea2f06b775cf4faa63528b6de/Anonymous/http.txt -------------------------------------------------------------------------------- /Anonymous/https.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seadhy/proxy-checker/d39670248056b55ea2f06b775cf4faa63528b6de/Anonymous/https.txt -------------------------------------------------------------------------------- /Anonymous/socks5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seadhy/proxy-checker/d39670248056b55ea2f06b775cf4faa63528b6de/Anonymous/socks5.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Deniz 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Proxy Checker 2 | Audits your proxies and saves them by categorizing them 3 | 4 | ## Preview 5 | ![image](https://i.hizliresim.com/1tkk6dj.png) 6 | 7 | ## Usage 8 | 1. Run `install.bat` 9 | 10 | 2. Add proxy in `proxies.txt` file in ip:port format 11 | 12 | 3. Run `run.bat` 13 | 14 | ## Warning 15 | 16 | Ignoring the difference between SOCKS4 and SOCKS5 proxies, it shows both as SOCKS5. 17 | -------------------------------------------------------------------------------- /Transparent/http.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seadhy/proxy-checker/d39670248056b55ea2f06b775cf4faa63528b6de/Transparent/http.txt -------------------------------------------------------------------------------- /Transparent/https.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seadhy/proxy-checker/d39670248056b55ea2f06b775cf4faa63528b6de/Transparent/https.txt -------------------------------------------------------------------------------- /Transparent/socks5.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seadhy/proxy-checker/d39670248056b55ea2f06b775cf4faa63528b6de/Transparent/socks5.txt -------------------------------------------------------------------------------- /install.bat: -------------------------------------------------------------------------------- 1 | pip install -r requirements.txt 2 | PAUSE -------------------------------------------------------------------------------- /invalid.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seadhy/proxy-checker/d39670248056b55ea2f06b775cf4faa63528b6de/invalid.txt -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from os import system 3 | from time import sleep 4 | from colorama import Fore 5 | 6 | white = Fore.LIGHTWHITE_EX 7 | correct = Fore.LIGHTGREEN_EX 8 | false = Fore.LIGHTGREEN_EX 9 | info = Fore.LIGHTCYAN_EX 10 | question = Fore.LIGHTYELLOW_EX 11 | l = Fore.LIGHTBLUE_EX 12 | 13 | 14 | def clear(): 15 | system('cls') 16 | 17 | def title(http,https,socks5): 18 | system(f'title VALID HTTP: {http} / VALID HTTPS: {https} / VALID SOCKS5: {socks5}') 19 | 20 | clear() 21 | 22 | http_counter = 0 23 | https_counter = 0 24 | socks5_counter = 0 25 | 26 | title(http_counter,https_counter,socks5_counter) 27 | 28 | proxies = open('proxies.txt','r',encoding='utf-8').read().splitlines() 29 | proxy_counter = len(proxies) 30 | 31 | print(f'{question}[?] Do you want to save proxies in text file: (y/n)') 32 | 33 | save_proxies = input('> ') 34 | 35 | payload = { 36 | "type": 2, 37 | "timeout": 20, 38 | "publish": False, 39 | "proxies": proxies 40 | } 41 | 42 | headers = { 43 | "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36" 44 | } 45 | 46 | url = 'https://checkerproxy.net/api/check' 47 | 48 | req = requests.post(url=url,headers=headers,json=payload) 49 | # i hope it's true, site written: 'The checking speed is about 1,000 units in 30 seconds.' 50 | # edit: info is not correct :P 51 | wait_time = (proxy_counter // 100 * 3) + 30 52 | clear() 53 | print(f'{info}[i] Please wait {wait_time} second.') 54 | sleep(wait_time) 55 | clear() 56 | id = dict(req.json())['id'] 57 | print(f'{info}[i] Check Panel ---> https://checkerproxy.net/report/{id}\n') 58 | result = requests.get(url = f'https://checkerproxy.net/api/report/{id}', headers=headers) 59 | result = dict(result.json())['proxies'] 60 | 61 | for i in range(len(result)): 62 | proxy = result[i]['addr'] 63 | proxy_type = result[i]['type'] 64 | proxy_validity = 'TRUE' 65 | proxy_kind = result[i]['kind'] 66 | proxy_addres = result[i]['addr_geo_country'] 67 | proxy_ping = result[i]['timeout'] 68 | 69 | if proxy_type == 2: 70 | proxy_type = 'HTTPS' 71 | https_counter += 1 72 | title(http_counter,https_counter,socks5_counter) 73 | elif proxy_type == 1: 74 | proxy_type = 'HTTP' 75 | http_counter += 1 76 | title(http_counter,https_counter,socks5_counter) 77 | elif proxy_type == 4: 78 | proxy_type = 'SOCKS5' 79 | socks5_counter += 1 80 | title(http_counter,https_counter,socks5_counter) 81 | elif proxy_type == 0 or proxy_type == None: 82 | proxy_validity = 'FALSE' 83 | 84 | if proxy_kind == 2: 85 | proxy_kind = 'ANONYMOUS' 86 | elif proxy_kind == 0: 87 | proxy_kind = 'TRANSPARENT' 88 | 89 | if proxy_addres == '': 90 | proxy_addres = 'NOT FOUND' 91 | if proxy_validity == 'TRUE': 92 | print(f'{correct}[+]{white} VALIDITY: {correct}{proxy_validity} {l}| {white}PROXY: {correct}{proxy} {l}| {white}TYPE: {correct}{proxy_type} {l}| {white}LOCATION: {correct}{proxy_addres} {l}| {white}KIND: {correct}{proxy_kind} {l}| {white}PING: {correct}{proxy_ping}ms') 93 | elif proxy_validity == 'FALSE': 94 | print(f'{false}[-]{white} VALIDITY: {false}{proxy_validity} {l}| {white}PROXY: {proxy}') 95 | 96 | if save_proxies == 'y': 97 | if proxy_validity == 'TRUE': 98 | if proxy_kind == 'ANONYMOUS': 99 | if proxy_type == 'HTTPS': 100 | with open('Anonymous/https.txt','a',encoding='utf-8') as file: 101 | file.write(f'{proxy}\n') 102 | elif proxy_type == 'HTTP': 103 | with open('Anonymous/http.txt','a',encoding='utf-8') as file: 104 | file.write(f'{proxy}\n') 105 | elif proxy_type == 'SOCKS5': 106 | with open('Anonymous/socks5.txt','a',encoding='utf-8') as file: 107 | file.write(f'{proxy}\n') 108 | elif proxy_kind == 'TRANSPARENT': 109 | if proxy_type == 'HTTPS': 110 | with open('Transparent/https.txt','a',encoding='utf-8') as file: 111 | file.write(f'{proxy}\n') 112 | elif proxy_type == 'HTTP': 113 | with open('Transparent/http.txt','a',encoding='utf-8') as file: 114 | file.write(f'{proxy}\n') 115 | elif proxy_type == 'SOCKS5': 116 | with open('Transparent/socks5.txt','a',encoding='utf-8') as file: 117 | file.write(f'{proxy}\n') 118 | elif proxy_validity == 'FALSE': 119 | with open('invalid.txt','a',encoding='utf-8') as file: 120 | file.write(f'{proxy}\n') 121 | 122 | print(f'\n{correct}[+] Verification Successful!\n{info}[i] HTTP: {http_counter}\n[i] HTTPS: {https_counter}\n[i] SOCKS5: {socks5_counter}') 123 | sleep(1.5) 124 | print(f'\n{info}[i] You can close the program by pressing enter.') 125 | input('') 126 | -------------------------------------------------------------------------------- /proxies.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seadhy/proxy-checker/d39670248056b55ea2f06b775cf4faa63528b6de/proxies.txt -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | requests 2 | colorama -------------------------------------------------------------------------------- /run.bat: -------------------------------------------------------------------------------- 1 | python main.py --------------------------------------------------------------------------------