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
Post a Comment