packet-sniffer Svelte Themes

Packet Sniffer

A simple real-time packet sniffer with a web interface developed in Svelte and a backend in Python (Scapy + WebSocket)

🌐 Packet Sniffer Dashboard

Un packet sniffer avanzato in tempo reale con interfaccia web sviluppata in Svelte e backend in Python (Scapy + WebSocket).

Cattura, analizza e visualizza il traffico di rete (TCP/UDP/ARP/DNS/TLS) in modo interattivo con statistiche, grafici e plugin modulari.


βš™οΈ FunzionalitΓ  principali

  • βœ… Cattura pacchetti in tempo reale (Scapy)
  • πŸ“Š Statistiche live su protocolli, byte e numero di pacchetti
  • πŸ“ˆ Grafico pacchetti/secondo con Chart.js
  • 🧩 Sistema plugin per analisi ARP, DNS, TLS (estendibile)
  • πŸ” Lista pacchetti con dettagli (IP, porte, payload, ARP, DNS query)
  • πŸ–₯️ Interfaccia responsive, auto-scroll, freeze per ispezione
  • πŸ” WebSocket bidirezionale tra frontend e backend
  • πŸ”” Sistema di notifiche (alert)

🧱 Architettura

flowchart LR
    Browser -->|WebSocket| Backend
    Backend -->|Scapy| Network
    Sniffer --> Controller --> Plugins
    Plugins --> WebSocket
    WebSocket --> Dashboard
  • Frontend (SvelteKit + Vite): dashboard SPA con componenti modulari e gestione stato con store Svelte.
  • Backend (Python): sniffer real-time con Scapy, broadcast dei pacchetti via WebSocket, plugin manager.

πŸ“ Struttura del progetto

rosciRic-packet-sniffer/
β”œβ”€β”€ backend/              # Sniffer, controller, plugin
β”œβ”€β”€ frontend/             # Interfaccia utente Svelte
└── README.md             # Questo file

πŸš€ Avvio rapido

πŸ“¦ Requisiti

  • Python 3.8+
  • Node.js + npm
  • Accesso root per Scapy (Linux/Mac)

βš–οΈ Setup backend (Python)

cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python main.py

La porta WebSocket sarΓ  ws://localhost:8765


🌐 Setup frontend (Svelte)

cd frontend
npm install
npm run dev

Dashboard disponibile su http://localhost:5173


πŸ”Œ Plugin disponibili

Plugin Descrizione
arp_logger Decodifica pacchetti ARP
dns_logger Estrae query DNS
tls_extractor Rileva handshake TLS

Abilitazione via backend/config/config.yaml:

plugins_enabled:
  - arp_logger
  - dns_logger
  - tls_extractor

πŸ“Š Statistiche mostrate

  • Numero pacchetti totali
  • Numero TCP, UDP, ARP
  • Totale byte
  • Andamento pacchetti/secondo (ultimi 30s)

Top categories

Loading Svelte Themes