C++ library and CLI: [![Build Status](https://www.travis-ci.org/insomniacslk/dublin-traceroute.svg?branch=master)](https://www.travis-ci.org/insomniacslk/dublin-traceroute)
[![Coverity Scan Build Status](https://scan.coverity.com/projects/7935/badge.svg)](https://scan.coverity.com/projects/insomniacslk-dublin-traceroute)

Python module: [![Build Status](https://www.travis-ci.org/insomniacslk/python-dublin-traceroute.svg?branch=master)](https://www.travis-ci.org/insomniacslk/python-dublin-traceroute) [![Version](https://img.shields.io/pypi/v/dublintraceroute.svg)](https://pypi.python.org/pypi/dublintraceroute)

Debian package: ![Debian Unstable](https://badges.debian.net/badges/debian/unstable/dublin-traceroute/version.svg)

Dublin Traceroute is a NAT-aware multipath traceroute tool.

And this page is just informational. **You should really read more at https://dublin-traceroute.net** .

**NEWS: Dublin Traceroute now has a blog! Check it out at https://blog.dublin-traceroute.net .**

If you are looking for the Python bindings, check out [python-dublin-traceroute](https://github.com/insomniacslk/python-dublin-traceroute). This module contains most functionalities, including diagrams and statistic analysis.

Feedback is extremely welcome! Find my contacts on https://insomniac.slackware.it or post in the [Dublin Traceroute mailing list](https://groups.google.com/forum/#!forum/dublin-traceroute) .

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.

![dublin-traceroute example](documentation/readme/traceroute_8.8.8.8.png)
