RozhakDev/QuickDomain
QuickDomain Pro: Alat CLI Python untuk memindai status HTTP/HTTPS domain secara massal. Cepat, asinkronus, dan profesional dengan logging rapi. Cocok untuk pengembang dan peneliti keamanan siber.
QuickDomain Pro: Pindai Domain Secepat Kilat โก
QuickDomain Pro adalah alat baris perintah (CLI) berbasis Python yang dirancang untuk memeriksa status HTTP/HTTPS dari daftar domain secara massal dengan kecepatan tinggi. Dibangun dengan arsitektur asinkronus menggunakan asyncio dan aiohttp, proyek ini mengutamakan performa, kebersihan kode, dan kemudahan penggunaan. Cocok untuk pengembang, administrator sistem, atau peneliti keamanan siber yang perlu memvalidasi domain secara efisien. ๐
Proyek ini adalah rekayasa ulang dari versi sebelumnya, kini dengan pendekatan Object-Oriented Programming (OOP), logging profesional dalam Bahasa Indonesia, dan antarmuka CLI yang intuitif menggunakan argparse. QuickDomain Pro juga jadi studi kasus keren buat kamu yang pengen belajar praktik terbaik dalam pengembangan perangkat lunak Python! ๐ป
โจ Fitur Utama
- Pemindaian Super Cepat: Manfaatkan
asynciodanaiohttpuntuk menangani ribuan domain secara bersamaan. - Ekstraksi Domain Cerdas: Deteksi dan ekstrak domain valid dari berbagai format file (
.txt,.json, atau data tidak terstruktur) dengan regex. - Logging Profesional: Hasilkan log yang rapi, berwarna di konsol, dan tersimpan ke file untuk analisis lebih lanjut.
- Arsitektur Bersih: Kode modular dengan pemisahan tanggung jawab antara ekstraksi, pemindaian, dan logging.
- Kontrol Konkurensi: Atur jumlah permintaan simultan dengan semaphore untuk mencegah pemblokiran IP.
- Antarmuka CLI Intuitif: Gunakan
argparseuntuk opsi fleksibel, cocok untuk otomatisasi atau penggunaan manual.
๐๏ธ Struktur Proyek
quickdomain_pro/
โ
โโโ results/ # Direktori untuk menyimpan file log hasil pemindaian
โ
โโโ quickdomain/
โ โโโ core/
โ โ โโโ __init__.py
โ โ โโโ extractor.py # Kelas untuk ekstraksi domain
โ โ โโโ scanner.py # Kelas untuk pemindaian domain
โ โ
โ โโโ utils/
โ โ โโโ __init__.py
โ โ โโโ logger.py # Modul untuk konfigurasi logging
โ โ
โ โโโ __init__.py
โ
โโโ .gitignore # Mengabaikan file yang tidak perlu dilacak
โโโ main.py # Titik masuk utama aplikasi
โโโ README.md # Dokumentasi proyek (yang lagi kamu baca ini!)
โโโ requirements.txt # Daftar dependensi Python
๐ Instalasi
Persyaratan
- Python: Versi 3.8 atau lebih baru.
- Sistem Operasi: Windows, macOS, atau Linux.
Langkah-langkah
-
Clone Repositori
Salin proyek ke mesin lokalmu:git clone https://github.com/RozhakDev/QuickDomain.git cd QuickDomain -
Buat Virtual Environment (Disarankan)
Buat dan aktifkan lingkungan virtual untuk menjaga dependensi tetap rapi:python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate
-
Instal Dependensi
Instal semua library yang dibutuhkan:pip install -r requirements.txt
๐ ๏ธ Penggunaan
Jalankan QuickDomain Pro melalui main.py dengan argumen yang diperlukan. Berikut sintaks dasarnya:
python main.py --file <path_ke_file_domain> [opsi_lainnya]Contoh Perintah
-
Scan domain dengan pengaturan default:
python main.py --file domains.txt
Memindai domain dari
domains.txtdengan protokolhttpdanhttps, konkurensi 100, dan timeout 10 detik. -
Scan dengan konkurensi tinggi:
python main.py --file data.json --concurrency 200
Memindai domain dari file JSON dengan 200 koneksi simultan.
-
Scan hanya dengan HTTPS dan output kustom:
python main.py --file domains.txt --protocols https --output hasil_aman.log
Memindai hanya protokol HTTPS dan menyimpan log ke
hasil_aman.log.
Opsi Argumen
| Argumen | Deskripsi | Default |
|---|---|---|
-f, --file |
(Wajib) Path ke file input berisi daftar domain (.txt, .json, dll). | - |
-o, --output |
Nama file untuk menyimpan log hasil pemindaian. | results/scan_log_{timestamp}.log |
-c, --concurrency |
Jumlah permintaan asinkron yang berjalan bersamaan. | 100 |
-p, --protocols |
Protokol yang akan diperiksa (http, https). |
http https |
-t, --timeout |
Waktu tunggu (detik) untuk setiap permintaan. | 10 |
โ ๏ธ Peringatan
QuickDomain Pro dirancang semata-mata untuk tujuan edukasi guna mempelajari pengembangan perangkat lunak Python, arsitektur asinkronus, dan praktik pemindaian domain yang bertanggung jawab. Gunakan alat ini hanya untuk memindai domain yang kamu miliki atau dengan izin eksplisit dari pemiliknya, serta hindari penggunaan untuk aktivitas yang melanggar hukum atau kebijakan penyedia layanan.
๐ค Kontribusi
Kami sangat terbuka untuk kontribusi! ๐ Jika kamu punya ide untuk fitur baru, perbaikan bug, atau optimasi kode, silakan berbagi!
๐ Lisensi
Proyek ini dilisensikan di bawah MIT License. Silakan gunakan, modifikasi, dan bagikan sesukamu! ๐
