Create Paste
Top Pastes
Recent Pastes
Settings
Account
Untitled Paste
Anonymous
Views
75
Visibility
Public
Expires
Never
Created
2 weeks ago
View Raw
Download
0
import json import requests import socket import socks from requests.exceptions import RequestException from concurrent.futures import ThreadPoolExecutor # Archivo que contiene la lista de proxies en formato JSON input_file = 'proxies.json' output_file = 'valid_proxies.txt' # URL de prueba para validar si el proxy funciona test_url = 'http://httpbin.org/ip' # Función para verificar proxies HTTP def check_http(host, port): proxy = f"http://{host}:{port}" try: response = requests.get(test_url, proxies={'http': proxy, 'https': proxy}, timeout=10) if response.status_code == 200: print(f"[SUCCESS] HTTP Proxy {host}:{port} funciona correctamente.") return f"{host}:{port}" except RequestException: print(f"[FAIL] HTTP Proxy {host}:{port} no es accesible.") return None # Función para verificar proxies SOCKS (SOCKS4 o SOCKS5) def check_socks(proxy_type, host, port): try: port = int(port) if proxy_type == 'socks5': socks.set_default_proxy(socks.SOCKS5, host, port) elif proxy_type == 'socks4': socks.set_default_proxy(socks.SOCKS4, host, port) socket.socket = socks.socksocket response = requests.get(test_url, timeout=10) if response.status_code == 200: print(f"[SUCCESS] {proxy_type.upper()} Proxy {host}:{port} funciona correctamente.") return f"{host}:{port}" except (RequestException, socks.ProxyError, socks.GeneralProxyError): print(f"[FAIL] {proxy_type.upper()} Proxy {host}:{port} no es accesible.") return None # Función para verificar el proxy en función del tipo def check_proxy(proxy_info): try: proxy_data = json.loads(proxy_info) protocol = proxy_data.get("protocol") host = proxy_data.get("host") port = proxy_data.get("port") if protocol == "http": return check_http(host, port) elif protocol in ["socks4", "socks5"]: return check_socks(protocol, host, port) except json.JSONDecodeError: print("[FAIL] Formato JSON no válido.") return None # Leer los proxies desde un archivo de texto with open(input_file, 'r') as file: proxies = [line.strip() for line in file.readlines()] # Verificar todos los proxies utilizando múltiples hilos y guardar los válidos en un archivo .txt with ThreadPoolExecutor(max_workers=20) as executor: results = list(executor.map(check_proxy, proxies)) # Filtrar y guardar los proxies válidos valid_proxies = [proxy for proxy in results if proxy is not None] with open(output_file, 'w') as file: for proxy in valid_proxies: file.write(proxy + '\n') print(f"Proxies válidos guardados en '{output_file}': {len(valid_proxies)} encontrados")