Wifi Berbagai IP Scapy Otomatis CSV vy-1

Dokumentasi: scan_semua.py

📄 Dokumentasi: scan_semua.py

🎯 Tujuan

  • ✔️ Scan otomatis semua jenis IP menggunakan Scapy
  • ✔️ Mendeteksi dan mengelompokkan hasil berdasarkan jenis IP
  • ✔️ Menyimpan hasil ke file .csv atau .json (opsional)
  • ✔️ Menampilkan hasil dalam bentuk tabel atau format JSON

🔍 Jenis IP yang Dideteksi

  • ✔️ IP LAN (diperoleh via ARP)
  • ✔️ Multicast & Broadcast (diperoleh via sniff paket jaringan)
  • ✔️ IP Lokal seperti 127.0.0.1 dan 169.254.x.x (loopback & link-local)

💾 Output File

  • ✔️ Hasil disimpan otomatis ke hasil_scan.csv
  • ✔️ Format kolom: IP, Kategori, Sumber Deteksi
  • ✔️ Tanpa input manual — proses sepenuhnya otomatis
  • ✔️ Durasi sniff default: 10 detik (bisa diubah)

▶️ Cara Menjalankan

python scan_semua.py
python NAMA_FILE.py untuk setiap jalankan aplikasi python

🛠️ Fitur Opsional

  • ✔️ Simpan juga ke file .json
  • ✔️ Tambahkan timestamp (waktu deteksi) ke setiap entri
  • ✔️ Deteksi vendor MAC address (misal: TP-Link, Intel, Realtek)
  • ✔️ Scan beberapa subnet sekaligus (contoh: 192.168.0.0/24 + 192.168.1.0/24)

Apakah scan bisa diulang otomatis setiap jam?

Ya, sangat bisa. Cukup gunakan while loop dan time.sleep() dalam Python seperti contoh berikut:

import time

  while True:
      scan_semua()
      print("[+] Menunggu 1 jam untuk scan berikutnya...")
      time.sleep(3600)  # 3600 detik = 1 jam
  

Alternatif: Kamu juga bisa menjadwalkan script menggunakan Task Scheduler (Windows) atau cron (Linux).

Namun jika kamu ingin solusi simpel, cukup gunakan while seperti di atas.


Perlu file hasil_scan.csv?

Tidak wajib, tapi sangat berguna jika kamu ingin:

  • Menganalisis hasil scan di kemudian waktu
  • Melihat perubahan perangkat yang muncul atau hilang
  • Debugging, misalnya jika perangkat aneh tiba-tiba muncul
  • Logging otomatis terutama jika scan berjalan secara berkala

Namun, jika hanya ingin melakukan satu kali scan langsung diikuti spoofing, maka tidak perlu disimpan ke file.

✅ Contoh Output CSV:



IP,Kategori,Sumber
192.168.1.10,Host LAN,ARP
224.0.0.251,Multicast,SNIFF
192.168.1.255,Broadcast,SNIFF
127.0.0.1,Loopback,Static
169.254.12.1,Link-local,SNIFF
  

Script Python: Versi scan_semua.py (Otomatis + Simpan ke .csv)

from scapy.all import ARP, Ether, srp, sniff, IP import csv def arp_scan(ip_range): print(f"[+] ARP Scan: {ip_range}") packet = Ether(dst="ff:ff:ff:ff:ff:ff") / ARP(pdst=ip_range) result = srp(packet, timeout=3, verbose=0)[0] return [r[1].psrc for r in result] def sniff_special_ips(duration=10): print(f"[+] Sniff multicast/broadcast selama {duration} detik...") packets = sniff(filter="ip", timeout=duration) found_ips = set() for pkt in packets: if IP in pkt: dst = pkt[IP].dst if dst.startswith("224.") or dst.startswith("239.") or dst.endswith(".255") or dst.startswith("169.254."): found_ips.add(dst) return list(found_ips) def scan_semua(ip_range="192.168.1.0/24", output_file="hasil_scan.csv"): hasil = [] # 1. Host LAN dari ARP lan_ips = arp_scan(ip_range) for ip in lan_ips: hasil.append((ip, "Host LAN", "ARP")) # 2. Multicast, broadcast, link-local dari sniff special_ips = sniff_special_ips() for ip in special_ips: if ip.startswith("224.") or ip.startswith("239."): kategori = "Multicast" elif ip.endswith(".255"): kategori = "Broadcast" elif ip.startswith("169.254."): kategori = "Link-local" else: kategori = "Lainnya" hasil.append((ip, kategori, "SNIFF")) # 3. Loopback IP (statis) hasil.append(("127.0.0.1", "Loopback", "Static")) # Simpan ke file CSV with open(output_file, mode="w", newline="") as f: writer = csv.writer(f) writer.writerow(["IP", "Kategori", "Sumber"]) for row in hasil: writer.writerow(row) print(f"[+] Hasil scan disimpan ke {output_file}") if __name__ == "__main__": scan_semua()

Comments