C++ library and CLI:

Python module:

Debian packages:

Dublin Traceroute is a NAT-aware multipath traceroute tool.
And this page is just informational. Read more at https://dublin-traceroute.net .
Dublin Traceroute has a blog, with articles on how to make the best out of it. Check it out at blog.dublin-traceroute.net.
Dublin Traceroute has also Python bindings, that will let you:
- use Dublin Traceroute from Python code
- generate graphical visualizations of your multipath traceroutes
- do statistical analysis using Pandas
See python-dublin-traceroute for more information.
Feedback is very welcome! You can open a new issue, or contact me directly, see https://insomniac.slackware.it for contact details.
But, in a few words, you can run traceroutes in multi-path networks (i.e. with ECMP load-balancing enabled), recognize NATs, have nice diagrams like the one below, export to JSON, and do this with a command-line tool, a C++ library or a Python library.
