28

How can I determine the IP route taken for a specific IP destination (without looking at "route print" and figuring it out manually)?

In OS X there's route get 1.2.34 and in Linux there's /sbin/ip route get 1.2.3.4. Is there anything like that on Windows?

1

3 Answers 3

10

Yep. Open a command line and type tracert 1.2.3.4

5
  • Heh, good point. Not an optimal solution, since it does query the network for something you know locally, but for the most part, gives me the information I need.
    – Ilya
    Oct 13, 2011 at 23:17
  • 1
    @Ilya: Using -d (no resolve IP) and -w 0 (don't wait for ping) should speed up the scan a lot.
    – Hello71
    Oct 14, 2011 at 0:30
  • 19
    This doesn't really do the same thing. The route get commands the original posted mentions perform a lookup in the local routing table and return the result. For example, you can ask ip route get 192.168.1.32/28 to find which routing table entry will be used for that network, but you can't ask tracert about network blocks.
    – larsks
    Nov 4, 2012 at 3:31
  • 1
    @Hello71 -w 0 is not working in my case (gives error Bad value for option -w.). -w 1 works however. May 7, 2015 at 9:14
  • 10
    This is not the correct answer. tracert doesn't give the routing information such as which interface is being used. Aug 1, 2016 at 1:20
58

In Powershell:

Find-NetRoute -RemoteIPAddress "10.0.0.34" | Select-Object ifIndex,InterfaceAlias,DestinationPrefix,NextHop,RouteMetric -Last 1

ifIndex           : 10
InterfaceAlias    : Ethernet 2
DestinationPrefix : 10.64.0.0/10
NextHop           : 0.0.0.0
RouteMetric       : 0
3
  • 4
    tbh this should be upvoted more. Find-NetRoute is probably the closest you're going to get to ip route get on Windows.
    – Bratchley
    Jun 20, 2017 at 17:56
  • Note that this will not work on Windows 7 (and lower). Should work on Windows 8 (and above).
    – Nux
    Jul 23, 2018 at 12:47
  • 1
    This should be the accepted answer. Btw, powershell seems not designed for daily interactive use ...
    – cyfdecyf
    Dec 5, 2019 at 8:22
13

The pathping command is similar to tracert but includes the outgoing interface.

Using cygwin, this command gives the outgoing IP/interface for a particular destination (specified by $HOST):

pathping -n -w 1 -h 1 -q 1 $HOST | head -n 4 | tail -n 1 | awk '{print $2}'

1
  • 2
    This is a better answer. pathping -n -w 1 -h 1 -q 1 $HOST was also very informative for me. Helped me figure out a problem I was having.
    – jenming
    Feb 27, 2017 at 5:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.