Validação de endereços IPv4

Publicado por Sandro Marcell (última atualização em 07/07/2011)

[ Hits: 5.215 ]

Homepage: http://sanmarcell.wordpress.com

Download valida_ipv4




Função bem simples que valida endereços IPv4 sem a utilização de qualquer comando externo ao Bash!

  



Esconder código-fonte

#
# Funcao para validacao generica de enderecos IPv4.
# Boa Vista, Roraima - 11/01/2011 
# Autor: Sandro Marcell <smarcell@myopera.com> 
# Blog: http://my.opera.com/smarcell/blog/
#
# - Para utiliza-la basta passar como argumento o IP a ser validado e checar
# o codigo de retorno ($?) da funcao, em que zero representa IP valido e
# qualquer coisa diferente e IP invalido.
#
# - Caso a funcao apresente problemas com a sintaxe '+(...)', basta ativar a
# opcao 'extglob' como o comando 'shopt -s extglob'.
#
# Obs.: Testada no Bash v4.1.x
# 
function validarIPv4() {
   local retorno bkp_IFS octeto
   
   retorno=0
   bkp_IFS=$IFS
   IFS='.'

   set - $1

   [ $# -ne 4 ] && { IFS=$bkp_IFS; return 1; }

   for octeto; do
      [[ $octeto != +([0-9]) || $octeto == +(0[0-9]*) || $octeto -gt 255 ]] && { retorno=2; break; }      
   done

   IFS=$bkp_IFS

   return $retorno 
}

Scripts recomendados

Instalador do emulador de joystick Xbox para joystick generico para PC, PS2, PS3 (Debian e Derivados

bookmaker.bash: Script para imprimir livros com 4 páginas em uma folha

Configurando um Servidor de Nomes no CL10 apenas respondendo algumas perguntas...

Controlando Fan Nagios no dialog

Dê utilidade aquelas teclas que não servem pra nada do seu teclado


  

Comentários
[1] Comentário enviado por SMarcell em 08/07/2011 - 12:04h

Complementando.

Um "one-liner" usando o (GNU) awk + ER que faz a mesma coisa:

$ echo 192.168.002.43 | gawk -W posix '/^(((1[0-9]|[1-9]?)[0-9]|2([0-4][0-9]|5[0-5]))\.){3}((1[0-9]|[1-9]?)[0-9]|2([0-4][0-9]|5[0-5]))$/'
$ echo 192.168.2.43 | gawk -W posix '/^(((1[0-9]|[1-9]?)[0-9]|2([0-4][0-9]|5[0-5]))\.){3}((1[0-9]|[1-9]?)[0-9]|2([0-4][0-9]|5[0-5]))$/'
192.168.2.43

Falou!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts