Come posso determinare il percorso IP preso per una destinazione IP specifica (senza guardare "route route" e capirlo manualmente)?
In OS X c'è route get 1.2.34
e in Linux c'è /sbin/ip route get 1.2.3.4
. C'è qualcosa del genere su Windows?
Come posso determinare il percorso IP preso per una destinazione IP specifica (senza guardare "route route" e capirlo manualmente)?
In OS X c'è route get 1.2.34
e in Linux c'è /sbin/ip route get 1.2.3.4
. C'è qualcosa del genere su Windows?
Risposte:
Sì. Apri una riga di comando e digitatracert 1.2.3.4
-d
(nessuna risoluzione IP) e -w 0
(non aspettare il ping) dovrebbe accelerare molto la scansione.
route get
comandi menzionati dall'originale pubblicato eseguono una ricerca nella tabella di routing locale e restituiscono il risultato. Ad esempio, puoi chiedere ip route get 192.168.1.32/28
di trovare quale voce della tabella di routing verrà utilizzata per quella rete, ma non puoi chiedere tracert
informazioni sui blocchi di rete.
-w 0
non funziona nel mio caso (dà un errore Bad value for option -w.
). -w 1
funziona comunque.
tracert
non fornisce le informazioni di routing come l'interfaccia utilizzata.
In 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
Find-NetRoute
è probabilmente il più vicino a ip route get
Windows.
Il pathping
comando è simile tracert
ma include l'interfaccia in uscita.
Usando cygwin, questo comando fornisce l'IP / l'interfaccia in uscita per una destinazione particolare (specificata da $HOST
):
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
è stato anche molto istruttivo per me. Mi ha aiutato a capire un problema che stavo avendo.