Script Python: deteksi_wifi.py E-1 jalankan (python deteksi_wifi.py) Lengkap termasuk Broadcast

import os import platform import subprocess from datetime import datetime import requests import pyperclip from mac_vendor_lookup import MacLookup # Telegram Bot config TELEGRAM_TOKEN = "7713956922:AAHzqYnxu6TBKNWGqIlUgLWjdfhM2pEDFC4" CHAT_ID = "1243483408" def send_telegram_alert(ip, mac, vendor): waktu = datetime.now().strftime("%d-%m-%Y %H:%M:%S") pesan = ( f"🚨 *PERANGKAT ASING TERDETEKSI*\n" f"📅 Waktu: {waktu}\n" f"💻 IP: `{ip}`\n" f"🔌 MAC: `{mac}`\n" f"🏢 Vendor: {vendor}" ) url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage" data = {"chat_id": CHAT_ID, "text": pesan, "parse_mode": "Markdown"} try: requests.post(url, data=data) except Exception as e: print(f"❌ Error Telegram: {e}") def get_arp_table(): if platform.system() == "Windows": output = subprocess.check_output("arp -a", shell=True, encoding='utf-8') else: output = subprocess.check_output(["arp", "-a"], encoding='utf-8') return output def parse_arp_output(arp_output): devices = [] for line in arp_output.splitlines(): if "-" in line or ":" in line: parts = line.split() if len(parts) >= 2: ip = parts[0] mac = parts[1].lower().replace("-", ":") devices.append((ip, mac)) return devices def load_whitelist(): try: with open("whitelist.txt", "r") as f: return [line.strip().lower() for line in f if line.strip()] except FileNotFoundError: return [] def log_detection(ip, mac, vendor): waktu = datetime.now().strftime("%d-%m-%Y %H:%M:%S") with open("log_deteksi.txt", "a") as f: f.write(f"[{waktu}] IP: {ip} | MAC: {mac} | Vendor: {vendor}\n") with open("blocklist.txt", "a") as b: b.write(f"{mac}\n") def main(): whitelist = load_whitelist() arp_output = get_arp_table() devices = parse_arp_output(arp_output) mac_lookup = MacLookup() print("🔍 Memindai jaringan...\n") found = False for ip, mac in devices: if mac not in whitelist: found = True try: vendor = mac_lookup.lookup(mac) except: vendor = "Tidak diketahui" print(f"🚨 PERANGKAT ASING DITEMUKAN!") print(f"❌ IP: {ip}") print(f"❌ MAC: {mac}") print(f"🏢 Vendor: {vendor}\n") send_telegram_alert(ip, mac, vendor) log_detection(ip, mac, vendor) pyperclip.copy(mac) print("📋 MAC telah disalin ke clipboard!") if not found: print("✅ Tidak ada perangkat asing ditemukan.\n") print("📦 Selesai.") if __name__ == "__main__": main()

Comments

Popular posts from this blog

Contoh Pindah Lokasi di CMD, Folder & Drive C D E

Langkah Cek Instalasi Python

Perbedaan antara Nmap dan python-nmap