#!/usr/bin/env python3 """Find a CN HTTP proxy that can reach api.openai.com.""" import urllib.request, threading, re from pathlib import Path from concurrent.futures import ThreadPoolExecutor, as_completed PROXIES_FILE = Path(__file__).parent / "results/proxies/elite.txt" TARGET = "https://api.openai.com/v1/models" def parse_line(line): # format: ip:portlatencyms[elite?] m = re.match(r"(\d+\.\d+\.\d+\.\d+:\d+)", line.strip()) return m.group(1) if m else None def test(px): proxy = urllib.request.ProxyHandler({"http": f"http://{px}", "https": f"http://{px}"}) opener = urllib.request.build_opener(proxy) opener.addheaders = [ ("User-Agent", "curl/8.5.0"), ("Authorization", "Bearer sk-invalid-test"), ] try: r = opener.open(TARGET, timeout=12) return px, r.getcode(), None except urllib.error.HTTPError as e: # 401 means we reached OpenAI — that's a WIN return px, e.code, None except Exception as e: return px, 0, f"{type(e).__name__}: {str(e)[:80]}" def main(): px_list = [] for line in PROXIES_FILE.read_text().splitlines(): p = parse_line(line) if p: px_list.append(p) print(f"testing {len(px_list)} proxies for OpenAI reachability...", flush=True) hits = [] with ThreadPoolExecutor(max_workers=40) as pool: futs = [pool.submit(test, p) for p in px_list] for f in as_completed(futs): px, code, err = f.result() if code in (200, 401, 403, 400, 429, 404): hits.append((px, code)) print(f" ✓ {px} -> HTTP {code}", flush=True) print(f"\n{len(hits)} proxies reached OpenAI:") for px, code in hits: print(f" http://{px} ({code})") # save best list out = Path(__file__).parent / "results/proxies/openai_capable.txt" out.write_text("\n".join(f"http://{px}" for px, _ in hits) + "\n") print(f"saved -> {out}") if __name__ == "__main__": main()