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

Ily*_*lya 28 networking windows routing ip

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

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

Mon*_*nor 53

在 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
Run Code Online (Sandbox Code Playgroud)

  • tbh 这应该得到更多的支持。`Find-NetRoute` 可能是你在 Windows 上最接近 `ip route get` 的方法。 (4认同)
  • 这应该是公认的答案。顺便说一句,powershell 似乎不是为日常交互使用而设计的...... (2认同)

小智 12

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

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

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

  • 这是一个更好的答案。 `pathping -n -w 1 -h 1 -q 1 $HOST` 对我来说也非常有用。帮助我解决了我遇到的问题。 (3认同)

Tra*_*Guy 11

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

  • 这并没有真正做同样的事情。`route get` 命令原始发布的提及在本地路由表中执行查找并返回结果。例如,您可以询问“ip route get 192.168.1.32/28”以查找将用于该网络的路由表条目,但您不能询问“tracert”有关网络块的信息。 (17认同)
  • 这不是正确答案。`tracert` 不提供路由信息,例如正在使用哪个接口。 (9认同)