import requests from concurrent.futures import ThreadPoolExecutor import time from collections import Counter import threading URL = "https://little-cell-5b16.farkzzin.workers.dev/token" tokens_found = [] errors = [] status_codes = Counter() lock = threading.Lock() def get_token(request_id): try: r = requests.get(URL, timeout=5) with lock: status_codes[r.status_code] += 1 if r.status_code == 200: data = r.json() if "token" in data: token = data["token"] with lock: tokens_found.append(token) print(f"[{request_id}] KEY: {token}") return token else: error_msg = f"[{request_id}] No token field in response: {data}" with lock: errors.append(error_msg) print(error_msg) else: error_msg = f"[{request_id}] Error status: {r.status_code}" with lock: errors.append(error_msg) print(error_msg) except requests.exceptions.Timeout: error_msg = f"[{request_id}] Timeout error" with lock: errors.append(error_msg) print(error_msg) except requests.exceptions.ConnectionError: error_msg = f"[{request_id}] Connection error" with lock: errors.append(error_msg) print(error_msg) except Exception as e: error_msg = f"[{request_id}] Error: {e}" with lock: errors.append(error_msg) print(error_msg) return None def save_results(): """Save unique tokens to a file""" unique_tokens = list(set(tokens_found)) with open("tokens_found.txt", "w") as f: f.write(f"Total requests: {total_requests}\n") f.write(f"Successful responses: {len(tokens_found)}\n") f.write(f"Unique tokens: {len(unique_tokens)}\n") f.write(f"Errors: {len(errors)}\n\n") f.write("="*50 + "\n") f.write("UNIQUE TOKENS:\n") f.write("="*50 + "\n") for token in unique_tokens: f.write(f"{token}\n") if errors: f.write("\n" + "="*50 + "\n") f.write("ERRORS:\n") f.write("="*50 + "\n") for error in errors[:50]: f.write(f"{error}\n") THREADS = 50 total_requests = 500 print(f"Starting {total_requests} requests with {THREADS} threads...") print(f"Target URL: {URL}") print("-" * 50) start_time = time.time() with ThreadPoolExecutor(max_workers=THREADS) as executor: futures = [executor.submit(get_token, i) for i in range(total_requests)] results = [f.result() for f in futures if f.result()] end_time = time.time() elapsed_time = end_time - start_time print("\n" + "="*50) print("STATISTICS:") print("="*50) print(f"Total time: {elapsed_time:.2f} seconds") print(f"Requests per second: {total_requests/elapsed_time:.2f}") print(f"Successful responses: {len(tokens_found)}/{total_requests} ({len(tokens_found)/total_requests*100:.1f}%)") print(f"Unique tokens: {len(set(tokens_found))}") print(f"Errors: {len(errors)}") print("\nStatus code distribution:") for code, count in status_codes.most_common(): print(f" {code}: {count} times") save_results() print(f"\nResults saved to 'tokens_found.txt'") if tokens_found: print("\nFirst 10 unique tokens found:") for token in list(set(tokens_found))[:10]: print(f" - {token}")