Turbotrace – free multithreaded visual traceroute utility for windows and linux

Turbotrace is a traceroute application that is multithreaded and plots nodes on a world map.



List of nodes

Nodes plot on a map


List of nodes discovered by TurboTrace

Nodes plotted on a map


1. Uses TCP syn packets to perform traceroute

ICMP Echo request packets as well as TCP syn packets are send out. So if some node blocks icmp echo request packets due to firewall , then it may reply to tcp syn packets and hence gets discovered.

2. Multithreaded , hence discovers all nodes simultaneously

This tool does not finds nodes one after another , but all of them together.

3. Finds the geographical location of ip address , using maxmind geolitecity database. More Information

4. Plots the locations on a google map , using embedded browser.

5. Cross Platform

Available for Windows and Linux

6. Absolutely free!!!

7. Open source.

Download and Install

Last Updated On : 15-Feb-2012


1. Download and install the Microsoft Visual C++ 2010 redistributable package
For windows xp(32 bit) :


2. Download and install winpcap packet driver from http://www.winpcap.org/

2. Download the file - turbotrace.zip
(size : 20mb)
3. Extract files in a folder and run turbotrace.exe


On a typical Ubuntu system the following instructions can be used to compile turbotrace.

1. Download the source code from https://github.com/silv3rm00n/Turbotrace.

2. Now compile it. But how , read ahead ...

3. First you need to compile and build wxwidgets 2.9.3 or above on your Linux system.

4. Download the linux version of wxwidgets from http://wxwidgets.org/. Go to downloads and check.

5. Once you have downloaded it , its time to build it. Extract the contents of the tar file somewhere. Then go inside the directory where you extracted everything. Now do the usual configure , make and make install process. This will build wxwidgets and install the necessary development and runtime libraries on your system.

Most importantly make sure that wxwidgets has been built with wxwebview. wxwebview depends on python and webkit libraries, install them from synaptic first of all.

6. After wxwidgets is installed , you need to compile Turbotrace. Use an ide like codeblocks , create a project add all files and compile and run. That should make it work.

7. The resources directory contains 2 html files. Put this file in the same directory which contains the turbotrace executable.

7. The application has to be run with root privileges. Also you need to download the maxmind Geolite city database .dat file and put it in the directory where turbotrace executable is located. The database is necessary to enable turbotrace to show the location of the ip addresses.



Turbotrace sends out raw TCP syn packets using the winpcap packet driver. Firewalls like zonealarm may block such packets in their default configuration. Hence you may need to either disable the firewalls or reduce the security level.


Check the installation instructions above.

Source Code

Get the source code from github :



1. The application is easy enough to use, if you know what tracerouting it.
2. The application is still in beta stage and has bugs.
3. For bug reports , feedbacks , feature requests please post a comment below.

Last Updated On : 17th October 2012

Subscribe to get updates delivered to your inbox

About Silver Moon

Php developer, blogger and Linux enthusiast. He can be reached at [email protected]. Or find him on

14 Comments + Add Comment

  • Starting sniffer thread…
    Thread starting
    Will now resolve : e-tard.tv
    e-tard.tv resolved to
    Sniffer initialising…
    pcap_open successful
    Error creating socket
    I turned off my firewall & no change
    I can’t get it to work no matter what I try.
    I’m running windows 7 ultimate

  • Looks like you need to update your Google API key.

  • I downlaade again, but it does’nt work. THere are some errors in the googlemap.html file. Firefox and chrome on macos does’nt seems to find the plot function (say: undefined) and more the GUnload function is not defined.

  • Tried also on win xp service pack 3. Markers appears on the map but they are not linked by lines….
    in wich part of the corce code do you define the javascriot command you send to the html page to draw markers and lines ?

    • Check the function plot_node around line 651 here :


      The application only sends a “node” information to the google_map.html file. The plotting and line drawing code is in the google_map.html file :


      • Thanks for replay, I see the code where the javascript is executed at runtime with m_browser->RunScript(js_command);
        I see there is also a Clearmap() method I think it must be called before the Plot() method. But if the marker are plotted (in a try I made on win xp) the linking lines not. To help me to know where is the problem can you show me a static example of the google_map.html file where marker and lines are plotted? so I can determine where is the bug.
        THanks, for all support.

        • You can try the following :

          1. Open google_map.html in google chrome
          2. Go to inspect element (F12) > Console
          3. Execute :

          plot({ip_address : ‘’ , node_number : ‘7’ , country_code : ‘IN’ , city : ‘Nagar’ , latitude : ‘27.433300’ , longitude : ‘77.099998’});
          plot({ip_address : ‘’ , node_number : ‘8’ , country_code : ‘US’ , city : ‘Mountain View’ , latitude : ‘37.419201’ , longitude : ‘-122.057404’});

          It will plot 2 points and connect them by a line.

          • I tried I have an error;
            SyntaxError: Unexpected token ILLEGAL
            arguments: Array[1]
            get message: function getter() { [native code] }
            get stack: function getter() { [native code] }
            set message: function setter() { [native code] }
            set stack: function setter() { [native code] }
            type: “unexpected_token”
            __proto__: Error

          • I cleaned the command, there was some illegal character on you attached string. So I tried to execute in chrome and firefox these:
            plot({ip_address : ‘’ , node_number : ‘1’ , country_code : ‘IT’ , city : ‘Milan’ , latitude : ‘45,466702’ , longitude : ‘9,200000’});
            plot({ip_address : ‘’ , node_number : ‘2’ , country_code : ‘DE’ , city : ‘Frankfurt Am Main’ , latitude : ‘50,116699’ , longitude : ‘8,683300’});
            plot({ip_address : ‘’ , node_number : ‘3’ , country_code : ‘US’ , city : ‘Fremont’ , latitude : ‘37,515499’ , longitude : ‘-121,896202’});
            plot({ip_address : ‘’ , node_number : ‘4’ , country_code : ‘DE’ , city : ‘Frankfurt Am Main2’ , latitude : ‘50,116699’ , longitude : ‘9,683300’});
            but both browser tell me: ‘undefined’…. and nothing’s appen on the map

          • Its because of the comma in the longitude and latitude numbers like 50,116699 and 9,683300
            What is your system locale ?

          • The application has been updated. It should now be able to plot the lines and markers.
            Please download again and check.

  • I tried on windows 2003 server. THe maps does’nt trace any line or marker, wich is the javascript sintax to display on the map markers and lines ?

    • Does the results list show any ip addresses ?
      There is a file called google_map.html , it has the javascript code that places markers and lines on the map.
      The log tab of the application will show what javascript commands were send to the google maps.

      • the traceroute in many cases works and ip adress are shown (in some case for centain ip adress or hosts the program crash: eg: http://www.editions.it). I tried to add in a static way some call to Plot method at the end of the scipt, in the google_map.html file:
        plot({ip_address : ‘’ , node_number : ‘1’ , country_code : ‘IT’ , city : ‘Milan’ , latitude : ‘45,466702’ , longitude : ‘9,200000’});
        plot({ip_address : ‘’ , node_number : ‘2’ , country_code : ‘DE’ , city : ‘Frankfurt Am Main’ , latitude : ‘50,116699’ , longitude : ‘8,683300’});
        plot({ip_address : ‘’ , node_number : ‘3’ , country_code : ‘US’ , city : ‘Fremont’ , latitude : ‘37,515499’ , longitude : ‘-121,896202’});
        plot({ip_address : ‘’ , node_number : ‘4’ , country_code : ‘DE’ , city : ‘Frankfurt Am Main2’ , latitude : ‘50,116699’ , longitude : ‘9,683300’});
        But firebug rarise some javascript error…and nothing is displayed. (Valore non valido per di proprietà: false
        [Interrompi per questo errore]


        Any static example on how googl_map.html must work it will be well appreciated.

Leave a comment