How arshadakl/whatsapp-p2p-traceroute works
WhatsApp P2P Traceroute captures authorized TCP/UDP traffic, identifies Meta and non-Meta remote endpoints, enriches and scores flows, then produces ranked reports and optional live dashboard updates. The README documents the feature set; sampled source confirms the CLI/dashboard orchestration and core capture-to-classification path. Reverse-DNS implementation and dashboard-page behavior are represented from documented capabilities, so their internal wiring is limited to the confirmed call/serve boundaries.
Main entry points: server.py Dashboard server · packet_sniffer.py Packet sniffer · main.py CLI workflow · classifier.py Flow classifier
Components 17
User entrypoints
- CLI workflow
main.py - Dashboard server
dashboard/server.py
Capture and classification
- Packet sniffer
core/packet_sniffer.py - Flow classifier
core/classifier.py
Endpoint enrichment
- Meta prefixes
core/meta_ranges.py - Meta IP filter
core/ip_filter.py - Reverse DNS
core/dns_resolver.py - Geo and ASN
utils/geo_ip.py
Reports and dashboard
- Report aggregation
core/reporting.py - CSV and JSON reports
core/reporting.py - PCAP log
core/packet_sniffer.py - Live dashboard page
dashboard/static/index.html
Other components
- Network operator
- Network interface
- RIPEstat
- GeoLite2 databases
- Dashboard user
Connections 24
- Network operator → CLI workflow: starts capture
- Network operator → Dashboard server: starts dashboard
- CLI workflow → Meta prefixes: refreshes prefixes
- Meta prefixes → RIPEstat: fetches prefixes
- CLI workflow → Meta IP filter: loads ranges
- CLI workflow → Packet sniffer: starts capture
- Network interface → Packet sniffer: supplies packets
- Packet sniffer → Flow classifier: classifies packets
- Flow classifier → Meta IP filter: checks addresses
- Flow classifier → Reverse DNS: resolves hostname
- Flow classifier → Geo and ASN: looks up endpoint
- Geo and ASN → GeoLite2 databases: reads location and ASN
- Packet sniffer → PCAP log: writes packets
- CLI workflow → Report aggregation: aggregates records
- Report aggregation → CSV and JSON reports: writes summaries
- Dashboard server → Meta prefixes: refreshes prefixes
- Dashboard server → Meta IP filter: loads ranges
- Dashboard server → Packet sniffer: starts capture
- Packet sniffer → Dashboard server: streams records
- Dashboard server → Report aggregation: aggregates records
- Dashboard server → CSV and JSON reports: writes summaries
- Dashboard user → Dashboard server: requests page and feed
- Dashboard server → Live dashboard page: serves page
- Dashboard server → Dashboard user: sends live records