В 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, technet.microsoft.com/en-us/library/hh826126.aspx
arana

Ответы:


8

Ага. Откройте командную строку и введитеtracert 1.2.3.4


Хех, хорошая мысль. Не оптимальное решение, так как оно запрашивает у сети то, что вы знаете локально, но по большей части дает мне необходимую информацию.
Илья

1
@ Илья: Использование -d(без разрешения IP) и -w 0(не ждите пинга) должно значительно ускорить сканирование.
Привет71

16
Это на самом деле не делает то же самое. Эти route getкоманды оригинал размещены упоминает выполнить поиск в локальной таблице маршрутизации и возвращает результат. Например, вы можете спросить, ip route get 192.168.1.32/28какая запись таблицы маршрутизации будет использоваться для этой сети, но вы не можете спросить tracertо сетевых блоках.
Жаворонки

1
@ Hello71 -w 0не работает в моем случае (выдает ошибку Bad value for option -w.). -w 1работает однако.
КришПрабакар

8
Это не правильный ответ. tracertне дает информацию о маршрутизации, например, какой интерфейс используется.
РикМишам

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, эта команда дает исходящий IP / интерфейс для определенного места назначения (определяется как $HOST):

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 было также очень информативным для меня. Помог мне разобраться с проблемой, с которой я столкнулся.
Дженминг
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.