ver redes para obtener mac direccion como comandos all macos routes netstat ifconfig

macos - redes - mac obtener ip



Cómo obtener una puerta de enlace predeterminada en Mac OSX (4)

La utilidad grep no es necesaria. Awk puede hacerlo todo:

netstat -rn | awk ''/default/ {print $2}'' 192.168.128.1

Tenga en cuenta que si tiene en ejecución algo como Parallels (o una VPN, o ambas), puede ver dos o más entradas de enrutamiento predeterminadas; será cierto si también usa la sugerencia ''grep'' anterior.

netstat -rn | awk ''/default/ {print $2}'' 192.168.128.1 link#12

y

netstat -rn | awk ''/default/ {print $2}'' utun1 192.168.128.1 link#12

Para establecer una variable (_default) para su uso posterior (suponiendo solo una entrada para ''default'') .....

_default=$( netstat -rn inet | awk ''/default/ {print $2}'' ) # I prefer $( ... ) over back-ticks

En el caso de múltiples rutas predeterminadas, use:

netstat -rn | awk ''/default/ {if ( index($6, "en") > 0 ){print $2} }'' 192.168.128.1

Estos ejemplos se probaron en Mavericks Terminal.app y son específicos solo de OSX. Por ejemplo, otras versiones de * nix frecuentemente usan ''eth'' para conexiones ethernet / inalámbricas, no ''en''. Esto también solo se prueba con ksh. Otros shells pueden necesitar una sintaxis ligeramente diferente.

Necesito recuperar la puerta de enlace predeterminada en una máquina Mac. Sé que en Linux route -n dará un resultado del cual puedo recuperar fácilmente esta información. Sin embargo, esto no funciona en Mac OSX (Snow Leopard).

También probé netstat -nr | grep ''default'' netstat -nr | grep ''default'' , pero esperaba una salida más limpia como la que produce la route -n en Linux / Unix. netstat -nr enumera todas las interfaces y la puerta de enlace predeterminada para ellas.

Cualquier tipo de sugerencia o sugerencia en la dirección correcta será apreciada.


Para obtener la lista de direcciones IP asociadas, puede usar el comando netstat

netstat -rn

Esto proporciona una larga lista de direcciones IP y no es fácil encontrar el campo requerido. El resultado de la muestra es el siguiente:

Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 192.168.195.1 UGSc 17 0 en2 127 127.0.0.1 UCS 0 0 lo0 127.0.0.1 127.0.0.1 UH 1 254107 lo0 169.254 link#7 UCS 0 0 en2 192.168.195 link#7 UCS 3 0 en2 192.168.195.1 0:27:22:67:35:ee UHLWIi 22 397 en2 1193 192.168.195.5 127.0.0.1 UHS 0 0 lo0 More result is truncated.......

La dirección IP de la puerta de enlace está en la primera línea; uno con el valor predeterminado en su primera columna.

Para mostrar solo las líneas de resultado seleccionadas, podemos usar el comando grep junto con netstat

netstat -rn | grep ''default''

Este comando filtra y muestra esas líneas de resultado que tienen por defecto. En este caso, puede ver resultados como los siguientes:

default 192.168.195.1 UGSc 14 0 en2

Si está interesado en encontrar solo la dirección IP de la puerta de enlace y nada más, puede filtrar el resultado usando awk . El comando awk coincide con el patrón en el resultado de entrada y muestra el resultado. Esto puede ser útil cuando usa su resultado directamente en algún programa o trabajo por lotes.

netstat -rn | grep ''default'' | awk ''{print $2}''

El comando awk dice que coincida e imprima la segunda columna del resultado en el texto. El resultado final se ve así:

192.168.195.1

En este caso, netstat muestra todos los resultados, grep solo selecciona la línea con ''default'' en él, y awk coincide aún más con el patrón para mostrar la segunda columna en el texto.

De manera similar, puede usar la ruta -n obtener el comando predeterminado para obtener el resultado requerido. El comando completo es

route -n get default | grep ''gateway'' | awk ''{print $2}''

Estos comandos funcionan bien tanto en Linux como en sistemas Unix y MAC OS.


Puedes probar con:

route -n get default

No es lo mismo que la route -n GNU / Linux route -n (o incluso el ip route show ), pero es útil para verificar la información de ruta predeterminada. Además, puede verificar la ruta que tomarán los paquetes a un host en particular. P.ej

route -n get www.yahoo.com

El resultado sería similar a:

route to: 98.137.149.56 destination: default mask: 128.0.0.0 gateway: 5.5.0.1 interface: tun0 flags: <UP,GATEWAY,DONE,STATIC,PRCLONING> recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire 0 0 0 0 0 0 1500 0

netstat -nr mi humilde netstat -nr es lo que necesita. Incluso la aplicación de utilidad de red de MacOSX (*) usa la salida de netstat para mostrar la información de enrutamiento.

Espero que esto ayude :)

(*) Puede iniciar la utilidad de red con open /Applications/Utilities/Network/ Utility.app


Yo usaría algo en esta línea ...

netstat -rn | grep "default" | awk ''{print $2}''