zsh: Validar IPv4 utilizando PCRE

Função genérica para validar endereços IPv4 utilizando o módulo PCRE (Perl Compatible Regular Expressions) do zsh.

😎

#
# Funcao para validacao generica de enderecos IPv4 usando o modulo
# PCRE (Perl Compatible Regular Expressions) do zsh.
#
# Sandro Marcell <smarcell@myopera.com>
#
# Para utilizar esta funcao, basta passar como argumento o IP a ser validado e checar
# o codigo de retorno ($?).
#
# Codigos de retorno
# 0 = IP valido
# 1 = Formato invalido para endereco IP
# 2 = Endereco IP fora da faixa valida (0-255) 
#
# Mais detalhes:
# - (man|info) zsh
# - http://www.pcre.org/
#

# Carrega o modulo PCRE (sem essa linha, a funcao nao tem utilidade alguma!)
zmodload zsh/pcre

function validarIPv4 {
	local ip padrao_ip ip_valido

	ip="$1" # IP a ser validado
	padrao_ip='^([d]{1,3}.){3}[d]{1,3}$' # Formato 'xxx.xxx.xxx.xxx'
	ip_valido='^(((1[d]|[1-9]?)[d]|2([0-4][d]|5[0-5])).){3}((1[d]|[1-9]?)[d]|2([0-4][d]|5[0-5]))$' # Intervalo de 0 a 255

	# Checa se a entrada esta em formato valido
	pcre_compile "$padrao_ip"
	pcre_match "$ip" || return 1

	# Valida o endereco IP de 0 a 255
	pcre_compile "$ip_valido"
	pcre_study
	pcre_match "$ip" || return 2

	return 0
}
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