Validação de endereços IPv4

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

[ Hits: 4.680 ]

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 <[email protected]> 
# 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

Jogo de perguntas e respostas

teste

Firewall do mikrotik, limitando icmp (ping)

Gerando ISO com o camando dd, e exibindo "barra de progresso".

Bloquear Facebook no Linux Educacional 3


  

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
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts