bash: função para validação de IP (IPv4)
Publicado por Sandro Marcell (última atualização em 10/11/2009)
[ Hits: 8.833 ]
Homepage: http://sanmarcell.wordpress.com
Esta é a versão Bash deste script:
http://www.vivaolinux.com.br/script/zsh-Funcao-para-validacao-de-IP-%28IPv4%29
Resumindo...
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 tal 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 = ip válido
1 = ip inválido
Não é grande coisa mas talvez possa vir a ser útil a alguém!
Falou!!! ;)
#
# Funcao para validacao de ip's (IPv4) - Versao Bash
#
# Sandro Marcell <sandro_marcell@yahoo.com.br>
# Boa Vista, Roraima - 25/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 tal 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 bash-3.2.39
# - Mais detalhes: 'man bash' e 'http://tools.ietf.org/html/rfc1918'
# - Funcao passivel de melhorias! ;)
#
ValidaIP() {
local numero_ip=$1
# Suporte 'built-in' a ER's! legal... =)
[[ $numero_ip =~ ^[0-9]{2,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]] || return 1
local primeiro_octeto segundo_octeto terceiro_octeto quarto_octeto
OLD_IFS=$IFS
IFS="."
set - $numero_ip
primeiro_octeto=$1
segundo_octeto=$2
terceiro_octeto=$3
quarto_octeto=$4
IFS=$OLD_IFS
# Checa o 2o octeto especifico de cada faixa
case $primeiro_octeto in
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
esac
# 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
}
configurar do samba e pureftpd
Gerando ISO com o camando dd, e exibindo "barra de progresso".
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









