#!/usr/bin/env python3
"""DAS: uji apakah server asal (di balik Cloudflare) masih menjawab — pakai kandidat IP dari catatan kerja."""
import ssl, socket, time, urllib.request

KANDIDAT = ["103.175.217.138", "103.84.155.153", "103.84.155.217", "158.140.163.231"]
HOST = "dasindonesia.com"
UA = {"User-Agent": "Mozilla/5.0"}
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

for ip in KANDIDAT:
    for port in (443, 80):
        t0 = time.time()
        try:
            s = socket.create_connection((ip, port), timeout=8)
            s.close()
            buka = f"port {port} TERBUKA ({round(time.time()-t0,2)}s)"
        except Exception as e:
            buka = f"port {port} TERTUTUP/timeout ({str(e)[:30]})"
        print(f"   {ip:<18} {buka}")
    # kalau 443 terbuka, minta halaman
    try:
        req = urllib.request.Request(f"https://{ip}/", headers={**UA, "Host": HOST})
        with urllib.request.urlopen(req, timeout=15, context=ctx) as r:
            print(f"      → HTTP {r.status} | {len(r.read())//1024} KB (dengan Host: {HOST})")
    except Exception as e:
        print(f"      → HTTP gagal: {str(e)[:60]}")
