| import os |
| import http.server |
| import subprocess |
|
|
| PORT = int(os.environ.get("PORT", "7860")) |
| PROXY = "http://hermes:f72e802bcb276eab77dc3da80cf2deb8293de87b6d38583a@51.75.119.147:18080" |
| PROXY_HOST = "51.75.119.147:18080" |
|
|
| def run(cmd): |
| try: |
| p = subprocess.run(cmd, capture_output=True, text=True, timeout=25) |
| return "rc=%s code=%s" % (p.returncode, p.stdout.strip()) |
| except subprocess.TimeoutExpired: |
| return "TIMEOUT" |
| except Exception as e: |
| return "EXC:%s" % e |
|
|
| def probe(): |
| lines = [] |
| lines.append("ENV_PROXY: HTTPS_PROXY=%r HTTP_PROXY=%r ALL_PROXY=%r" % ( |
| os.environ.get("HTTPS_PROXY"), os.environ.get("HTTP_PROXY"), os.environ.get("ALL_PROXY"))) |
| lines.append("DIRECT_TG: " + run(["curl", "-sS", "-m", "12", "-o", "/dev/null", "-w", |
| "%{http_code}|%{time_total}s", |
| "https://api.telegram.org/"])) |
| lines.append("PROXIED_TG: " + run(["curl", "-sS", "-m", "12", "-x", PROXY, "-o", "/dev/null", "-w", |
| "%{http_code}|%{time_total}s", |
| "https://api.telegram.org/"])) |
| lines.append("PROXY_NOAUTH: " + run(["curl", "-sS", "-m", "8", "-x", "http://%s" % PROXY_HOST, |
| "-o", "/dev/null", "-w", "%{http_code}", "https://api.telegram.org/"])) |
| lines.append("PROXY_TCP: " + run(["bash", "-lc", |
| "exec 3<>/dev/tcp/%s && echo OPEN" % PROXY_HOST])) |
| lines.append("IPIFY_DIRECT: " + run(["curl", "-sS", "-m", "12", "-o", "/dev/null", "-w", |
| "%{http_code}", "https://api.ipify.org/"])) |
| return "\n".join(lines) |
|
|
| RESULT = None |
|
|
| class H(http.server.BaseHTTPRequestHandler): |
| def do_GET(self): |
| global RESULT |
| if RESULT is None: |
| RESULT = probe() |
| body = RESULT.encode() |
| self.send_response(200) |
| self.send_header("Content-Type", "text/plain; charset=utf-8") |
| self.send_header("Content-Length", str(len(body))) |
| self.end_headers() |
| self.wfile.write(body) |
| def log_message(self, *a): |
| pass |
|
|
| http.server.ThreadingHTTPServer(("0.0.0.0", PORT), H).serve_forever() |