zsh: Função para validação de IP (IPv4)
Publicado por Sandro Marcell (última atualização em 29/10/2009)
[ Hits: 6.606 ]
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 }
Visualisando espaço em disco, data do sistema e usuarios conectados
TimerDown v1.0 - timer para desligar o PC
Nenhum comentário foi encontrado.
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Remoção de propaganda com o programa Comskip[AJUDA] (2)
Linux Lite Demorando Muito Para Ligar (0)
PC não liga no filtro de linha (3)