zsh: Função para validação de IP (IPv4)
Publicado por Sandro Marcell (última atualização em 29/10/2009)
[ Hits: 6.557 ]
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 que insere cor nos seus comandos :)
Configução básica de uma rede local, roteando e habilitando o firewall
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta