zsh: Validar IPv4 utilizando PCRE
Publicado por Sandro Marcell (última atualização em 01/03/2013)
[ Hits: 4.262 ]
Homepage: http://sanmarcell.wordpress.com
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
}
Nenhum comentário foi encontrado.
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Necessário autenticar ao imprimir - Ubuntu X Windowns (1)
O que houve com slackware ??? (11)
O Free Download Manager não abre no Fedora 43 KDE Plasma (2)









