Create Paste
Top Pastes
Recent Pastes
Settings
Account
Untitled Paste
Anonymous
Views
110
Visibility
Public
Expires
Never
Created
2 weeks ago
View Raw
Download
0
import requests import socket import socks import json from requests.exceptions import RequestException from concurrent.futures import ThreadPoolExecutor # Archivo que contiene la lista de proxies 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(ip, port): proxy = f"http://{ip}:{port}" try: response = requests.get(test_url, proxies={'http': proxy, 'https': proxy}, timeout=10) if response.status_code == 200: print(f"[SUCCESS] HTTP Proxy {ip}:{port} funciona correctamente.") return f"{ip}:{port}" except RequestException: print(f"[FAIL] HTTP Proxy {ip}:{port} no es accesible.") return None # Función para verificar proxies SOCKS (SOCKS4 o SOCKS5) def check_socks(proxy_type, ip, port): try: port = int(port) if proxy_type == 'socks5': socks.set_default_proxy(socks.SOCKS5, ip, port) elif proxy_type == 'socks4': socks.set_default_proxy(socks.SOCKS4, ip, port) socket.socket = socks.socksocket response = requests.get(test_url, timeout=10) if response.status_code == 200: print(f"[SUCCESS] {proxy_type.upper()} Proxy {ip}:{port} funciona correctamente.") return f"{ip}:{port}" except (RequestException, socks.ProxyError, socks.GeneralProxyError): print(f"[FAIL] {proxy_type.upper()} Proxy {ip}:{port} no es accesible.") return None # Función para verificar el proxy en función del tipo def check_proxy(proxy): if isinstance(proxy, dict): protocol = proxy.get('protocol') ip = proxy.get('host') port = proxy.get('port') if protocol == 'http': return check_http(ip, port) elif protocol in ['socks4', 'socks5']: return check_socks(protocol, ip, port) else: if proxy.startswith('http'): protocol, address = proxy.split('://') ip, port = address.split(':') return check_http(ip, port) elif proxy.startswith('socks'): protocol, address = proxy.split('://') ip, port = address.split(':') return check_socks(protocol, ip, port) return None # Leer los proxies desde un archivo JSON o una lista de texto with open(input_file, 'r', encoding='utf-8') as file: try: proxies = json.load(file) # Intentar cargar como JSON except json.JSONDecodeError: file.seek(0) proxies = [line.strip() for line in file.readlines()] # Leer como lista de texto # 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', encoding='utf-8') as file: for proxy in valid_proxies: file.write(proxy + '\n') print(f"Proxies válidos guardados en '{output_file}': {len(valid_proxies)} encontrados")