Tcproute is a tcp based traceroute console program for Windows. It uses the Pcap.Net .NET wrapper for WinPcap. Here is a link to the Pcap.Net license. Some code has been sourced from StackOverflow: here and here. I believe all the StackOverflow stuff defaults to CC-Attribution-Share-Alike, so feel free to use my modifications under that license.
- WinPcap must be installed on your machine
- You may need the Microsoft Visual C++ Redistributable Package (the Pcap.Net DLLs require it) ... if it isn't already present.
- You may need the .NET Framework 4 Client Profile ... if it isn't already present.
I have tested tcproute under windows XP and Windows 8. I'm assuming it will work on the intermediary versions provided the requirements are met - but with all the dependencies it may be hit and miss. Let me know. Additionally - it works fine under VMWare on my Mac, but screws up under my VirtualBox installation (in particular, it seems that VirtualBox's networking is rewriting my packets and losing the TTL settings. This might just be my setup rather than a general issue.) I also have reports that it misbehaves under KVM, but do not have an installation of that here to check.
Tcproute functions by trying to connect to a specified TCP port, starting with a packet TTL of 1 and incrementing upward until it successfully reaches the target.
Currently very beta. Feedback welcome!
Updates:0.9, Sep 2 2015. Improvements to IP and MAC autodetection added by Sander Aiaots
C:\>tcproute -i 4 www.elifulkerson.com Ensuring gateway address (192.168.2.1) is in arp... OK! Using the following values: --------------------------- Local IP: 192.168.2.20 Local MAC: 90:B1:1C:93:0D:32 Gateway MAC: 00:1F:5B:00:DF:0B Remote IP: 188.8.131.52 Tracing route to www.elifulkerson.com:80 1 49 ms 192.168.2.1 TimeExceeded 2 37 ms (redacted - Eli) 3 11 ms (redacted - Eli) 4 20 ms (redacted - Eli) 5 25 ms he-3-5-0-0-10-cr01.newyork.ny.ibone.comcast.net [184.108.40.206] TimeExceeded 6 18 ms 220.127.116.11 TimeExceeded 7 35 ms vlan51.ebr1.NewYork2.Level3.net [18.104.22.168] TimeExceeded 8 29 ms ae-6-6.ebr1.Atlanta2.Level3.net [22.214.171.124] TimeExceeded 9 34 ms ae-82-82.csw3.Washington1.Level3.net [126.96.36.199] TimeExceeded 10 36 ms ae-81-81.ebr1.Washington1.Level3.net [188.8.131.52] TimeExceeded 11 32 ms GIGLINX-INC.edge4.Atlanta2.Level3.net [184.108.40.206] TimeExceeded 12 2001 ms timed out 13 36 ms GIGLINX-INC.edge4.Atlanta2.Level3.net [220.127.116.11] TimeExceeded 14 34 ms router2-atl.linode.com [18.104.22.168] TimeExceeded 15 35 ms li16-201.members.linode.com [22.214.171.124]:80 Synchronize, Acknowledgment (port open) (HTTP) 46 ms li16-201.members.linode.com [126.96.36.199]:80 Acknowledgment
Usage: tcproute.exe [-?][-l][-i INTERFACE#][-p PORT] target Options: -? Get this help screen -v Display version information -l List available interfaces -i INT# Specify an interface (otherwise you have to pick from the list) -p PORT Specify a TCP port to connect to -d Disable DNS lookup -h num Maximum of 'num' hops (maximum TTL) -w ms Wait 'ms' milliseconds for a response -r # Retry # times if a hop times out --http Send an HTTP request once we get a connection target The IP address or domain name of the target --debug Debug mode, prints stuff for bug reports Manual (Override) Options: --local-ip or --lip Manually set the local IP address. (format) XXX.XXX.XXX.XXX --local-mac or --lmac Manually set the local MAC address. (format) XX:XX:XX:XX:XX:XX:XX (colons only) --gateway-mac or --gwmac Manually set the gateway's MAC address (format) XX:XX:XX:XX:XX:XX:XX (colons only)