================================================== DOMAIN STATUS & EXPIRY CHECKER Powered by SatpamSiber.com
Script Bash untuk memeriksa status domain dan tanggal expired baik domain internasional (.com, .net, .org, dll) maupun domain .id melalui PANDI.
-
Mengecek status aktif/tidak domain via
dig. -
Mengambil tanggal expired domain via WHOIS global atau PANDI (khusus .id).
-
Menampilkan progress bar + persentase + ETA.
-
Menyimpan hasil ke file CSV dengan format aman (quoted).
-
Parser WHOIS menjaga kolom Expiry Date tetap utuh (termasuk jam & zona) untuk domain internasional.
-
Menyimpan log detail ke file LOG dengan header & footer.
-
Auto install dependency (
whois,dig,curl,grep). -
Highlight otomatis:
- β Expired
β οΈ Expiring Soon (β€30 hari)- β OK
Clone repository ini:
git clone https://github.com/ahliweb/cekdomain.git
cd cekdomain
chmod +x check_domains.sh- Buat file
domains.txtberisi daftar domain (satu per baris):
ahliweb.com
ahliweb.id
ahliweb.co.id
- Jalankan script:
./check_domains.sh- Mode verbose (menampilkan cuplikan WHOIS/PANDI):
./check_domains.sh -v"Domain","Status","Expiry Date","Note"
"ahliweb.com","Active (172.67.214.243)","2026-02-21T08:56:22Z","β οΈ Expiring Soon (0 days)"
"ahliweb.id","Active (76.76.21.21)","(Cek manual pandi.id/whois)",""
"ahliweb.co.id","Active (172.67.165.161)","(Cek manual pandi.id/whois)",""
==================================================
DOMAIN STATUS & EXPIRY CHECKER - LOG FILE
Powered by SatpamSiber.com
Start time : Sat Oct 4 09:30:33 AM WIB 2025
Input file : domains.txt
Output CSV : domain-status.csv
==================================================
π Memproses: ahliweb.com
β‘οΈ Cek via WHOIS: ahliweb.com
Registry Expiry Date: 2026-02-21T08:56:22Z
π Memproses: ahliweb.id
β‘οΈ Cek via PANDI: ahliweb.id
... (hasil parsing PANDI)
π Memproses: ahliweb.co.id
β‘οΈ Cek via PANDI: ahliweb.co.id
... (hasil parsing PANDI)
==================================================
END OF LOG
Finish time : Sat Oct 4 09:30:55 AM WIB 2025
Total domain: 3
Output CSV : domain-status.csv
==================================================
Proyek ini dirilis dengan lisensi MIT.
Script ini didukung oleh:
π SatpamSiber.com | AhliWeb.com | AhliWeb.co.id
==================================================
CLI crossβplatform untuk mengecek status DNS + tanggal kedaluwarsa domain (WHOIS global & RDAP PANDI untuk .id). Dirancang agar kompatibel dengan output versi Bash (domain-status.csv & domain-status.log).
Supported by SatpamSiber.com Β· AhliWeb.com Β· AhliWeb.co.id Β· AhliWeb.my.id
Tambahkan folder berikut ke repo:
/dart-cli/
pubspec.yaml
bin/
cekdomain.dart
lib/
pandi_rdap.dart
whois_utils.dart
.github/
workflows/
build-dart-cli.yml
Lihat contoh isi file di folder
dart-cli/pada repo ini.
Opsi A β Pakai binary jadi (.exe):
-
Buka tab Actions di GitHub repo β workflow Build Dart CLI β Artifacts β unduh
cekdomain-windows-latest. -
Ekstrak dan simpan
cekdomain.exeke folder proyek atau ke folder diPATH(mis.C:\\Tools). -
Siapkan daftar domain
domains.txt(1 domain per baris). -
Jalankan dari PowerShell atau CMD:
.\\cekdomain.exe -i ..\\domains.txt -v
Opsi B β Build lokal (butuh Dart SDK):
-
Install Dart SDK (Windows): https://dart.dev/get-dart
-
Masuk ke folder CLI dan ambil dependency:
cd dart-cli dart pub get -
Kompilasi executable:
dart compile exe bin/cekdomain.dart -o build/cekdomain.exe
-
Jalankan:
.\\build\\cekdomain.exe -i ..\\domains.txt
Catatan: Jika SmartScreen/AV menandai file, pilih Keep/Run anyway. Pastikan file berasal dari repo resmi Anda.
cd dart-cli
dart pub get
# Run (debug)
dart run cekdomain -i ../domains.txt -v
# Build binary
dart compile exe bin/cekdomain.dart -o build/cekdomain
./build/cekdomain -i ../domains.txtcekdomain [options]
Options:
-i, --input File daftar domain (default: domains.txt)
--csv Output CSV (default: domain-status.csv)
--log Output LOG (default: domain-status.log)
-v, --verbose Tampilkan detail proses
-h, --help Bantuan
Contoh:
# Windows
.\\cekdomain.exe -i ..\\domains.txt --csv domain-status.csv --log domain-status.log -vProgress bar akan tampil sampai 100%. Di akhir proses, baris backlink akan dicetak satu baris:
Supported by SatpamSiber.com | AhliWeb.com | AhliWeb.co.id | AhliWeb.my.id
Input: domains.txt (1 domain per baris, baris kosong & baris diawali # diabaikan).
CSV aman (quoted): "Domain","Status","Expiry Date","Note"
Status:Active/Inactive(untukActivedapat memuat IP pertama, mis.Active (203.0.113.10)).Expiry Date: ISOβ8601 UTC lengkap (contoh:2026-02-21T08:56:22Z) atau(N/A)jika tidak ditemukan.Note:β Expired,β οΈ Expiring Soon (β€30 hari),β OK, atau penjelasan jika expiry tak ditemukan.
LOG:
- Memuat header (judul, start time, file input/output),
- Rincian per domain,
- footer (finish time, total domain, path CSV) + backlink satu baris.
- Cek DNS: A/AAAA via DoH Google β fallback resolver OS.
- .id: RDAP PANDI (
https://rdap.pandi.id/rdap/domain/{domain}) β ambil eventexpiration. - TLD umum: WHOIS (port 43) dengan pola tanggal umum (
Registry Expiry Date,Expiration Date, dll.).
File: .github/workflows/build-dart-cli.yml
- Build di Windows & Ubuntu, upload artifact
cekdomain.exe(Windows) &cekdomain(Linux). - Jalankan otomatis saat ada perubahan di folder
dart-cli/atau manual via Run workflow.
Rilis:
- Setelah workflow sukses, buka job β Artifacts untuk unduh binary.
- (Opsional) Buat Release dan lampirkan binary agar mudah diunduh publik.
-
SmartScreen/AV block: Pastikan file dari repo ini, pilih Run anyway atau whitelist folder.
-
Execution Policy PowerShell (saat menjalankan skrip .ps1):
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
-
Network/Proxy: Jika jaringan corporate memblok port WHOIS (43) β
.idtetap aman via RDAP (HTTPS). Untuk TLD nonβ.id, jalankan di jaringan tanpa blok port 43 atau siapkan fallback RDAP global (pengembangan lanjutan). -
Karakter newline: Gunakan UTFβ8 LF/CRLF apa pun, parser akan memangkas whitespace.
- Struktur kolom CSV & format LOG dipertahankan agar kompatibel dengan pipeline/otomasi sebelumnya.
- Progress bar mencapai 100% dan mencetak backlink satu baris di akhir output.
- RDAP menggantikan WHOIS sebagai sumber data terstruktur via HTTPS, meminimalkan error parsing & meningkatkan integritas data, terutama untuk
.id(PANDI). - Simpan hasil ke CSV/LOG readβonly di pipeline server; pertimbangkan hashing (SHAβ256) untuk audit trail.
- Batasi input
domains.txtdari sumber tepercaya (hindari command injection saat dipakai di pipeline lain).
- Fallback RDAP bootstrap untuk TLD nonβ
.idbila port 43 diblok. - Parallelism (pool) untuk percepat cek massal besar.
- Output tambahan: JSON lines (
.jsonl) untuk integrasi SIEM/ELK.
# Unduh artifact & jalankan (Windows)
.\\cekdomain.exe -i ..\\domains.txt -v
# Build lokal (Windows)
cd dart-cli
dart pub get
dart compile exe bin/cekdomain.dart -o build/cekdomain.exe
.\\build\\cekdomain.exe -i ..\\domains.txt