An implementation of the traceroute command in pure Python 3.8, using raw sockets and the ICMP protocol.
A path diagram with the results of the command is rendered using the Diagrams module with GraphViz.
The module runs only on Linux systems (I tested it in Ubuntu 20.04), due to raw socket incompatibility of other OS distributions. Also, root-level access is required when executing the script (use sudo 😃)
sudo apt install graphviz
pip3 install diagrams
sudo python3 main.py