¿Qué comando puedo ejecutar para obtener solo la dirección IP de mi enrutador?
Con este comando, debería tener solo la dirección IP de mi enrutador y no, por ejemplo, toda la tabla de enrutamiento (como cuando ejecuto route -n
).
fuente
¿Qué comando puedo ejecutar para obtener solo la dirección IP de mi enrutador?
Con este comando, debería tener solo la dirección IP de mi enrutador y no, por ejemplo, toda la tabla de enrutamiento (como cuando ejecuto route -n
).
One-liners:
nm-tool | grep -i gateway | xargs echo | cut -d' ' -f2
nm-tool | grep -i gateway | awk '{print $2}
netstat -nr | awk '$1 == "0.0.0.0"{print$2}'
arp -n | awk '{print $1}'
Nota: funciona solo si su máquina es la única en la redip route show | grep -i 'default via'| awk '{print $3 }'
salida: 192.168.0.1
para mi
NOTA :
Para 15.04 y posterior, no hay nm-tool
, así que úselo nmcli dev show <IFACE>
. Por ejemplo,
$ nmcli dev show wlan7 | grep GATEWAY
IP4.GATEWAY: 192.168.0.1
IP6.GATEWAY:
Ediciones e información adicional
Como puede ver al examinar el comando, tomamos la salida de nm-tool
(que, nota, toma información del NetworkManager) , buscamos la línea que contiene la palabra gateway
, imprimimos que la información con eco (separados por espacios), y luego cortamos solo el segundo elemento de ese conjunto salida. Tenga en cuenta que si tiene dos o más conexiones allí, es posible que necesite quitar la xargs echo | cut -d' ' -f2
parte superior y reemplazarla con awk '{print $2}'
; en otras palabras, toda la línea se vería así nm-tool | grep -i gateway | awk '{print $2}'
. Alternativamente, podría haber utilizado nm-tool | grep -oP '(?i)gateway:\s*\K\S+'
según lo propuesto por Avinash Raj en los comentarios. Como puede ver, no se hace nada especial aquí, y toda la prueba aquí es simplemente un ejercicio para usar herramientas de edición de salida como cut, awk y grep.
Otro método para obtener la información de la puerta de enlace es a través del nmcli dev list
comando (sí, aún confiando en el administrador de red). nmcli
es la versión de línea de comandos del administrador de red. Podrías correr nmcli dev list | grep -i routers
o podrías correr nmcli dev list | grep -i 'gw ='
. Una vez más, puede hacer ejercicio para cortar toda la otra información, excepto la dirección IP deseada, si así lo desea.
Dado que en la pregunta original, la única especificación era imprimir solo la puerta de enlace predeterminada, confío en la salida de nm-tool aquí. NetworkManager viene con Ubuntu por defecto, esta es la forma estándar de administrar las conexiones de red de Ubuntu. Si usa algo diferente, como wicd o se conecta a través de wpa_cli, nm-tool no le dará una respuesta. En tal caso, puede encontrar las respuestas de otras personas más útiles a continuación.
Sería usar una opción más neutral en cuanto a distribución y configuración neutral netstat -n
, que utiliza la tabla de enrutamiento del núcleo, similar a route -n
. Su salida es inferior, nada sorprendente.
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 9 0 0 wlan0
Y esta es la forma de recortar la información deseada: netstat -nr | awk '$1 == "0.0.0.0"{print$2}'
Otro, neutral también: arp -n | awk '{print $1}'
nm-tool | grep -oP '(?i)gateway:\s*\K\S+'
eth0
ywlan0
, ambos conectados de forma activa pero con una puerta de enlace configurada solo enwlan0
, lasnm-tool | grep -i gateway | xargs echo | cut -d' ' -f2
salidas simplemente0.0.0.0
.nm-tool | grep -oP '(?i)gateway:\s*\K\S+'
salidas de dos líneas:0.0.0.0
seguido por192.168.1.1
. (Las formasip route ...
yroute -n ...
producen justo192.168.1.1
, lo que yo consideraría el resultado más deseable.)network-manager
ejemplo, porifupdown
o ... enifconfig
esos casosnm-tool
no generará la salida deseada ... en pocas palabras, esta respuesta se basa únicamente en la red gestionada pornetwork-manager
...Puedes encontrarlo de muchas maneras
Una mejor pregunta, ¿qué o cómo quieres dar forma a la salida?
De los comentarios - (gracias Avinash Raj 0
fuente
uniq
solotracepath -m 1 8.8.8.8 | awk '/1:/ {print $2;exit}'
sería 5in.tracepath
admite-m
en algunas versiones de Ubuntu pero no en otras .Como suele utilizar
route -n
, puede probar estased
solución junto conroute -n
:Aquí hay una prueba:
Otra forma sería usar
grep
:Como @AvinashRaj ha señalado, esto se puede hacer solo usando
grep
(no es necesario apretar los espacios usandotr
):fuente
tr
, grep solo hará el trabajoroute -n | grep -Po "0\.0\.0\.0 \s*\K\S+(?=\s*0\.0\.0\.0)"
Yo uso este bastante a menudo:
fuente
192.168.0.1
?Si tiene acceso a un navegador web en el sistema, puede ir a http://whatsmyrouterip.com/ y debería poder encontrar su ip sin ningún comando.
De lo contrario, simplemente abrir la terminal y hacer una
ip route | grep default
debería ser suficiente. Puede dar más de uno dependiendo de sus interfaces de red.fuente
Lo uso con bastante frecuencia y es fácil de recordar:
fuente
190.200.200.107 172.21.0.1 172.17.0.1 172.19.0.1 172.18.0.1
para obtener solo el problema de IP
190.200.200.107
fuente