Bash: Função para validação genérica de endereços IPv4

Como gosto muito de shell script devido a sua simplicidade e flexibilidade, aqui vai uma função bem simples que valida endereços IPv4 sem a utilização de qualquer comando externo ao Bash! :ninja:

#
# Funcao para validacao generica de enderecos IPv4
# Autor: Sandro Marcell <smarcell@myopera.com>
# Blog: http://my.opera.com/smarcell/blog/
# Boa Vista, Roraima - 11/01/2011
#
# - 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.
#
# Obs.: Testada no Bash v4.1.x
# 
function validarIPv4() {
        shopt -s extglob
	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 
}
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s