Aqui les dejo el fruto de mi vagancia, anoche llegue con aburrimiento a la casa luego del trabajo y me coloque a mejorar un poco el script del otro dia, el que tenia mas comentarios que codigo y lo deje ahora con mas codigo que comentarios ;-D aqui les va:

[code='Bash']
#!/bin/sh
#Script que muestra la ip de una interface de red determinada
#o la puerta de enlace de la misma
#Para usar se le debe pasar el parametro de la interface al
#ejecutar el script, ejemplo:
#$./ip eth0
#$./ip route
#lo que daria como respuesta la ip de la interface eth0: 192.168.0.3
#o la ip de la puerta de enlace gw: 192.168.0.254
#este script produce una salida limpia, la cual puede ser usada por
#otros scripts, obvio que debe ser ejecutado con privilegios de root...
#esto tiene licencia GNU/gpl
#
# creado por Richzendy | http://www.Richzendy.org
#
# Agradecimientos a Rodríguez José Gregorio, Parte de su codigo se encuentra aqui :D
#

#Validación del Usuario

if [ $USER != root ]; then
echo "Este script debe ser ejecutado por el usuario root (super admin)"
else

if [ -z $1 ]; then
echo "Debe suministrar un argumento, USO: ./ip {eth0|eth1|ath0|wlan0|route}"
else
if [ $1 == route ]; then

ROUTE=`route -n| grep "^0.0.0.0"`

#Validar si la variable ROUTE no esta vacia ( es decir si existe un gateway )

if [ -n "$ROUTE" ]; then
echo "$ROUTE" | cut -b 17-32 | cut -d " " -f 1

else
echo "No existe dirección IP de gateway"
fi
else
INTERFAZ=`ifconfig | grep $1`
PRUEBA=`ifconfig $1 2> /dev/null`
ERROR="$(echo $? )"

#Validar si la variable INTERFAZ esta vacia ( es decir, si existe la interface )

if [ -z "$INTERFAZ" ] || [ $ERROR == 1 ]; then

echo "Argumento \"$1\" invalido/Dispositivo no encontrado, USO: ./ip {ethx|athx|wlanx|route}"
echo "en donde el sufijo \"x\" ( ejem. ethx ) es un numero entero y debe corresponder para"
echo "interfase de red valida en el sistema."
else

IP=`ifconfig $1 | grep "inet addr"`

#Validar si la variable IP esta vacia ( es decir, si existe una ip asignada )

if [ -z "$IP" ]; then
echo "La interfase esta activa, pero no tiene una direccion ip asignada"
else

echo "$IP" | awk '1{print $2,$5 }' | awk -F : '1{print $2 }'

fi
fi
fi
fi
fi

[/code]

El script se encuentra abierto a sugerencias, cualquiera es valida.

No hay articulos relacionados a esta entrada.