Este scrip de nombre «valida_ip.sh» nos permite validar una lista de Direcciónes IP, indicando si esta correcta o mala.-
#!/bin/bash function valid_ip() { local ip=$1 local stat=1 if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then OIFS=$IFS IFS='.' ip=($ip) IFS=$OIFS [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \ && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] stat=$? fi return $stat } if [[ "$(basename $0 .sh)" == 'valida_ip' ]]; then ips=' 4.2.2.2 a.b.c.d 192.168.1.1 0.0.0.0 255.255.255.255 125.e.12.45 255.255.255.256 192.168.0.1 192.168.0 1234.123.123.123 ' for ip in $ips do if valid_ip $ip; then stat='correcto'; else stat='malo'; fi printf "%-20s: %s\n" "$ip" "$stat" done fi
Al ejecutar este script, obtenemos el siguiente resultado :
4.2.2.2 : correcto a.b.c.d : malo 192.168.1.1 : correcto 0.0.0.0 : correcto 255.255.255.255 : correcto 125.e.12.45 : malo 255.255.255.256 : malo 192.168.0.1 : correcto 192.168.0 : correcto 1234.123.123.123 : malo