zsh: Validar IPv4 utilizando PCRE
Publicado por Sandro Marcell (última atualização em 01/03/2013)
[ Hits: 4.228 ]
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
}
shradio.sh - ouça rádios online
Sysinfo - Informações sobre o seu computador
Procurando um padrão num arquivo
Conversor de arquivos de vídeo (Video Converter)
Estok SH 1.2b - Controle de Estoque em Shell Script
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Script de montagem de chroot automatica
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Assisti Avatar 3: Fogo e Cinzas (4)
Conky, alerta de temperatura alta (11)









