Red de conocimiento informático - Material del sitio web - ¿Cómo utilizar Shell para determinar si la IP es legal?

¿Cómo utilizar Shell para determinar si la IP es legal?

#!/bin/bash

#?Prueba?una?dirección?IP?para?validez:

#?Uso:

#?valid_ip?IP_ADDRESS

#?if?[[?$?-eq?0?]];?entonces?echo?bueno;?else?echo?malo;?fi

#OR

#?if?valid_ip?IP_ADDRESS;?entonces?echo?good;?else?echo?bad;?fi

#

función?valid_ip()

{

local?ip=$1

local?stat=1

si?[[ ?$ip?=~?^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{ 1, 3}$?]];?entonces

OIFS=$IFS

IFS='.'

ip=($ip)

IFS=$OIFS

[[?${ip[0]}?-le?255?amp;amp;?${ip[1]}?-le?255?\

amp;amp;?${ip[2]}?-le?255?amp;amp;?${ip[3]}?-le?255?]]

stat=$?

fi

retorno?$stat

}

#?Si?ejecutar?directamente,?ejecutar ?algunas?pruebas.

if?[[?"$(basename?$0?.sh)"?==?'valid_ip'?]];?entonces

ips= '

4.2.2.2

a.b.c.d

192.168.1.1

0.0.0.0

255.255.255.255

255.255.255.256

192.168.0.1

192.168.0

1234.123.123.123

para?ip?in?$ips

hacer

if?valid_ip?$ip;?then?stat='bueno';?else?stat='malo ';?fi

printf?"-20s:?s\n"?"$ip"?"$stat"

hecho

fi p>

Prueba esto