A GUI traceroute program visualizing the path packets take from a device to a website using a geomap. The backend performs the traceroute and geolocation in python, while the frontend displays results in an interactive map in html.
Dependencies:
- Npcap - Packet capture library for Windows (mac/linux uses libpcap)
- GeoIP2 - MaxMind's GeoIP2 Python API, for IP address geolocation
- MaxMind DB Reader - Reader for MaxMind's Geo database
- webview - Webview library to render GUI
- Scapy - Crafts and sends packets for traceroute
- Flask - Web app framework, for GUI and handling requests
- Flask-CORS - Flask extension to allow communication between backend and UI
Installation:
Windows: Npcap needs to be installed manually from www.npcap.com
macOS/Linux: libpcap needs to be installed manually
pip install geoip2
pip install scapy
pip install Flask
pip install Flask-CORS
pip install pywebview
Usage: Run from IDE or execute this command in terminal: python vizTrace.py
Make sure 'GeoLite2-City.mmdb' database file is in the same folder as vizTrace.py