Encontrei uma expressão regular que resolve esse problema no vivaolinux.
grep -E '^( ([01]?([0-9]{2}) |
(2[0-4][0-9]) |
(25[0-5]) \.){2}( ([01]?([0-9]{2}) |
(2[0-4][0-9]) | (25[0-5]) )$'
Mesmo Assim resolvi Brincar um pouco com shell! =D
segue o script que criei
#!/bin/bash
# Retorno das funcoes fica nessa variavel
RETURN="";
function ip_valida()
{
# Ip como Parametro 1
local IP_=$1;
# Variavel pra guardar resultados do GREP/SED
local GREP_="";
# Verifica Caracteres Invalidos
GREP_=`echo ${IP_} | sed "s/[0-9\.]//g"`;
if [ "${GREP_}" != "" ]; then
RETURN="FALSE";
return 1;
fi
# Testa Quantos Octetos Foram Entregues
GREP_=`echo "${IP}" | awk -F"." '{print NF}'`
let GREP_=${GREP_}!=4;
if [ "${GREP_}" == 1 ]; then
RETURN="FALSE";
return 1;
fi
for i in 1 2 3 4; do
# pega cada octeto
GREP_=`echo "${IP_}" | cut -d\. -f ${i};`
# testa se o octeto eh Vazio
if [ "${GREP_}" == "" ]; then
RETURN="FALSE";
return 1;
fi
# testa de o octeto eta entre 0 e 255
let GREP_="${GREP_}<0 || ${GREP_}>255";
if [ "${GREP_}" == 1 ]; then
RETURN="FALSE";
return 1;
fi
done
RETURN="TRUE";
return 0;
}
echo -n "Entre com o IP: "
read IP
ip_valida ${IP};
echo ${RETURN};
Thats All Folks!
2 comentários:
Aaaaaa mermão, agora ficou tudo mais claro, se eu soubesse que era tão simples assim...
kkkkkkkkkkkkkkkkkkk
Esse nego!! =P
Postar um comentário