π‘ Fuzzu Packet Sniffer – Python GUI for Real-Time IP Monitoring | Tkinter + Scapy
Demo :
Click Video πππ
π Description:
Explore the power of Python + Scapy in this sleek GUI app that sniffs packets live! Whether you're into network security or learning how to trace source/destination IPs, this hacker-style app gives you a stunning GUI interface with real-time output.
Built with threading, styled with dark mode, and structured for maximum speed. Watch the Short video demo and grab the code from our next release.
✨ Features:
-
Live Packet Sniffing with IP & Protocol
-
Stylish Dark GUI with Tkinter
-
Real-time TreeView display
-
Beginner-friendly + Offline Tool
Code :
import tkinter as tk
from tkinter import ttk, messagebox
import threading
from scapy.all import sniff, IP
class PacketSnifferGUI:
def __init__(self, root):
self.root = root
self.root.title("π‘ FuzzuTech Packet Sniffer")
self.root.geometry("600x500")
self.root.configure(bg="#1e1e1e")
style = ttk.Style()
style.theme_use("default")
style.configure("Treeview", background="#2e2e2e", foreground="white", fieldbackground="#2e2e2e")
style.configure("Treeview.Heading", background="#00b894", foreground="white")
title = tk.Label(self.root, text="FuzzuTech Packet Sniffer", font=("Segoe UI", 20), bg="#1e1e1e", fg="white")
title.pack(pady=10)
self.tree = ttk.Treeview(self.root, columns=("Source", "Destination", "Protocol"), show="headings")
self.tree.heading("Source", text="Source")
self.tree.heading("Destination", text="Destination")
self.tree.heading("Protocol", text="Protocol")
self.tree.pack(fill=tk.BOTH, expand=True, padx=20, pady=10)
button_frame = tk.Frame(self.root, bg="#1e1e1e")
button_frame.pack(pady=10)
self.start_btn = tk.Button(button_frame, text="Start Sniffing", command=self.start_sniffing, bg="#00b894", fg="white", font=("Segoe UI", 12), padx=10, pady=5)
self.start_btn.pack(side=tk.LEFT, padx=10)
self.stop_btn = tk.Button(button_frame, text="Stop", command=self.stop_sniffing, bg="#d63031", fg="white", font=("Segoe UI", 12), padx=10, pady=5)
self.stop_btn.pack(side=tk.LEFT, padx=10)
self.sniffing = False
def start_sniffing(self):
if not self.sniffing:
self.sniffing = True
self.thread = threading.Thread(target=self.sniff_packets)
self.thread.daemon = True
self.thread.start()
messagebox.showinfo("Started", "Packet sniffing started.")
def stop_sniffing(self):
self.sniffing = False
messagebox.showinfo("Stopped", "Packet sniffing stopped.")
def sniff_packets(self):
sniff(prn=self.process_packet, store=False, stop_filter=lambda x: not self.sniffing)
def process_packet(self, packet):
if IP in packet:
src = packet[IP].src
dst = packet[IP].dst
proto = packet.proto
self.tree.insert("", tk.END, values=(src, dst, proto))
if __name__ == "__main__":
root = tk.Tk()
app = PacketSnifferGUI(root)
root.mainloop()
Comments
Post a Comment