zsh: Função para validação de IP (IPv4)
Publicado por Sandro Marcell (última atualização em 29/10/2009)
[ Hits: 6.903 ]
Homepage: http://sanmarcell.wordpress.com
Esta função toma como base a RFC 1918, que especifica quais as faixas de IPs devem ser usadas numa rede privada. Segundo ela as faixas disponíveis para esse fim são:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
Portanto esta função só validará IPs que estejam numa das faixas acima.
Para usá-la basta passar como argumento o ip a ser validado e posteriormente checar o código de retorno da função, em que:
0 = válido
1 = inválido
Não é grande coisa mas talvez possa vir a ser útil a alguém!
Falou!!! ;)
#
# Funcao para validacao de ip's (IPv4)
#
# Sandro Marcell <sandro_marcell@yahoo.com.br>
# Boa Vista, Roraima - 24/10/2009
#
# Esta funcao toma como base a 'RFC 1918' que especifica quais as faixas de
# ip's devem ser usadas numa rede privada. Segundo ela as faixas disponiveis
# para esse fim sao:
# -> 10.0.0.0 - 10.255.255.255
# -> 172.16.0.0 - 172.31.255.255
# -> 192.168.0.0 - 192.168.255.255
# Portanto esta funcao so validara ip's que estejam numa das faixas acima.
#
# Para utiliza-la basta passar como argumento o ip a ser validado e posteriormente
# checar o codigo de retorno da funcao, em que:
# 0 = ip valido
# 1 = ip invalido
#
# Obs.:
# - Funcao criada sob o zsh 4.3.9
# - Mais detalhes: 'man zsh' e 'http://tools.ietf.org/html/rfc1918'
# - Funcao passivel de melhorias! ;)
#
function ValidaIP {
# Suporte 'built-in' a ER's! Coisas do zsh =)
[[ $@ =~ "^[0-9]{2,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" ]] || return 1
typeset -a numero_ip
typeset primeiro_octeto segundo_octeto terceiro_octeto quarto_octeto
numero_ip=(${(s:.:)@})
primeiro_octeto=$numero_ip[1]
segundo_octeto=$numero_ip[2]
terceiro_octeto=$numero_ip[3]
quarto_octeto=$numero_ip[4]
# Checa o 2o octeto especifico de cada faixa
case $primeiro_octeto {
(10) [[ $segundo_octeto =~ "^0[0-9][0-9]?" ]] && return 1 # Invalida tipos '0x' ou '0xx'
(( segundo_octeto >= 0 && segundo_octeto <= 255 )) || return 1 ;;
(172) (( segundo_octeto >= 16 && segundo_octeto <= 31 )) || return 1 ;;
(192) (( segundo_octeto == 168 )) || return 1 ;;
(*) return 1
}
# Ja que o 3o e 4o octetos sao comuns as tres faixas
[[ $terceiro_octeto =~ "^0[0-9][0-9]?" ]] || [[ $quarto_octeto =~ "^0[0-9][0-9]?" ]] && return 1
(( terceiro_octeto >= 0 && terceiro_octeto <= 255 )) || return 1
(( quarto_octeto >= 0 && quarto_octeto <= 255 )) || return 1
}
Script para redimensionar/reduzir fotos digitais
shell para matar logins aberto com o mesmo usuario
Pós-instalação do openSUSE Tumbleweed
Script para verificação do serviço do Apache (webserver) em sistemas Linux Ubun
Nenhum comentário foi encontrado.
KDE Plasma - porque pode ser a melhor opção de interface gráfica
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
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)
Interface gráfica com problema (2)
Instalar Linux em notebook Sony Vaio VPCEG13EB (13)
Vou destruir sua infância:) (7)









