在Windows上,如何确定IP目标的路由?


21

如何确定用于特定IP目的地的IP路由(无需查看“路由打印”并手动确定)?

在OS X中有route get 1.2.34,在Linux中有/sbin/ip route get 1.2.3.4。Windows上有类似的东西吗?


如果您愿意使用Powershell,则可以使用Get-NetRoute cmdlet,technet.microsoft.com
zh

Answers:


8

是的 打开命令行并输入tracert 1.2.3.4


嘿,好点。这不是一个最佳的解决方案,因为它会向网络查询您在本地知道的信息,但是在大多数情况下,它会为我提供所需的信息。
伊利亚

1
@Ilya:使用-d(不解析IP)和-w 0(不要等待ping)应该可以大大加快扫描速度。
Hello71,2011年

16
这实际上并没有做同样的事情。route get原始发布的提及的命令在本地路由表中执行查找并返回结果。例如,您可以要求ip route get 192.168.1.32/28查找将用于该网络的路由表条目,但不能询问tracert有关网络块的信息。
larsk's

1
@ Hello71 -w 0在我的情况下不起作用(给出错误Bad value for option -w.)。-w 1但是有效。
KrishPrabakar 2015年

8
这不是正确的答案。tracert不提供路由信息,例如正在使用哪个接口。
RickMeasham '16

25

在Powershell中:

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

ifIndex DestinationPrefix NextHop     RouteMetric
------- ----------------- -------     -----------
     49 10.0.0.0/24       10.64.130.4           0

2
这应该更多。Find-NetRoute可能是ip route getWindows上最接近的版本。
布拉奇利

请注意,这在Windows 7(及更低版本)上不起作用。应该可以在Windows 8(及更高版本)上使用。
Nux

这应该是公认的答案。顺便说一句,powershell似乎不适合日常交互使用...
cyfdecyf

8

pathping命令类似于tracert但包含传出接口。

使用cygwin,此命令为特定目的地(由指定$HOST)提供传出IP /接口:

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


1
这是一个更好的答案。 pathping -n -w 1 -h 1 -q 1 $HOST 对我也很有帮助 帮助我找出我遇到的问题。
詹明,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.