quinta-feira, 15 de janeiro de 2009


Tutorial: Validar IP com Shell Script

Olah, senhores...

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:

Negao_DB disse...

Aaaaaa mermão, agora ficou tudo mais claro, se eu soubesse que era tão simples assim...

Anderson disse...

kkkkkkkkkkkkkkkkkkk
Esse nego!! =P


Related Posts with Thumbnails