Script Python: deteksi_wifi.py D jalankan (python deteksi_wifi.py)
import os
import platform
import subprocess
from datetime import datetime
import requests
# Telegram Bot config
TELEGRAM_TOKEN = "7713956922:AAHzqYnxu6TBKNWGqIlUgLWjdfhM2pEDFC4"
CHAT_ID = "1243483408"
def send_telegram_alert(ip, mac):
waktu = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
pesan = f"🚨 PERANGKAT ASING TERDETEKSI\nIP: {ip}\nMAC: {mac}\nWaktu: {waktu}"
url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
data = {"chat_id": CHAT_ID, "text": pesan}
try:
response = requests.post(url, data=data)
if response.status_code != 200:
print(f"❌ Gagal kirim Telegram: {response.text}")
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:
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):
with open("log_deteksi.txt", "a") as f:
f.write(f"{datetime.now()} | PERANGKAT ASING | IP: {ip}, MAC: {mac}\n")
def main():
whitelist = load_whitelist()
arp_output = get_arp_table()
devices = parse_arp_output(arp_output)
print("🔍 Memindai jaringan...\n")
found = False
for ip, mac in devices:
if mac not in whitelist:
found = True
print(f"🚨 PERANGKAT ASING TERDETEKSI:\n❌ IP: {ip}, MAC: {mac}")
send_telegram_alert(ip, mac)
log_detection(ip, mac)
if not found:
print("✅ Tidak ada perangkat asing ditemukan.")
print("\nSelesai.\n")
if __name__ == "__main__":
main()
Comments
Post a Comment