Tengo eth0 y wlan0 según ifconfig y puedo ping google.com
. ¿Cómo puedo averiguar (con un usuario normal, no root) qué interfaz está activa , como en qué interfaz usó el ping (o lo que sea, ping no es obligatorio)?
NOTA: usando Ubuntu 11.04 o Fedora 14
Respuestas:
Puede usar
route
para encontrar su ruta predeterminada:La
Iface
columna en la línea con el destinodefault
le indica qué interfaz se utiliza.fuente
route
no se pueden utilizar. @Torgeir tiene la respuesta correcta.192.168.1.0...
es la ruta que se utilizará. Por supuesto, en este caso se refiere al mismo Iface, pero eso es solo porque tiene una interfaz en su máquina.Mi versión que se basa básicamente en esto y esto :
Y esto, experimentalmente , para macOS:
fuente
route |awk '/^default/{print $NF}'
En sistemas GNU / Linux:
fuente
host
es un argumento de entrada para el script. Como la ruta (y por lo tanto la interfaz) puede ser diferente para diferentes ips.Correr
ifconfig
te dará la información que necesitas.La interfaz activa tendrá un
inet addr
y mostrará un registro de los datos transmitidos, así:También puede utilizar el
ip addr
mando y las interfaces inactivas serán designados por tener:NO-CARRIER
.fuente
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:
route
comando, aunque eso no sería necesariamente infalible debido al enrutamiento. La ruta predeterminada no tiene por qué ser la que lleva a Internet, aunque a menudo puede ser.Un trazador de líneas:
ip route get 8.8.8.8 | sed -n 's/.*dev \([^\ ]*\) table.*/\1/p'
fuente
Obtenga la interfaz de red predeterminada que normalmente se usa para enrutar a Internet "restante" en lugar de DMZ, red privada, host de máquina virtual, etc., que generalmente se enruta explícitamente.
fuente
ip -4 route ls |awk '/^default/{print $5}'
El comando
ip route ls
dará una lista de rutas activas y sus fuentes:fuente
Usa este comando:
fuente
usa el siguiente:
fuente
Si su máquina tiene varias interfaces (lo que supongo), no hay una interfaz que se utilizará para conectarse a Internet.
Dependiendo del destino al que se está conectando, su sistema consultará la tabla de IP (la que se muestra cuando hace el
route
comando) para encontrar la próxima esperanza / enrutador, cuando encuentre uno, usará la interfaz asociada con él.Dicho esto, consulte la respuesta de @ torgeir, ya que hace exactamente eso:
fuente