Verifica duplicação de IPs na rede
Publicado por Osama Jr. (última atualização em 10/07/2010)
[ Hits: 6.304 ]
Homepage: Não tenho
Simples script que verifica duplicação de IPs na rede. Este script depende de:
- arping
- zenity
#!/bin/bash
#
# Informa duplicação de ip's na rede
# Autor: /bin/laden - 06/07/2010.
#
# Mais detalhes: <man arping> ou <www.google.com> =P
#
# Dependências: 'arping' e 'zenity'.
PATH="/bin:/usr/bin:/sbin:/usr/sbin"
INTERFACE="eth0"
which zenity > /dev/null 2>&1
[ $? -ne 0 ] && { echo "zenity: comando não encontrado."; exit 1 ; }
which arping > /dev/null 2>&1
[ $? -ne 0 ] && { echo "arping: comando não encontrado."; exit 1; }
while true
do
ip=$(zenity --title="Checa IP" --entry --text "Endereço IP:")
[ $? -ne 0 ] && exit $?
# Obrigado a SMarcell <sandro_marcell@yahoo.com.br> pelo exemplo desta função.
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
}
validaIP $ip
[ $? -eq 1 ] && { zenity --error --text "Endereço IP inválido!" ; continue ; }
break
done
ping -c 3 $ip > /dev/null 2>&1
retval=$?
if [ $retval -eq 1 ]
then
zenity --error --text "$ip\nHost de destino inalcansável!"
exit 1
fi
arping -D -I $INTERFACE -c 3 $ip > /dev/null 2>&1
retval=$?
if [ $retval -eq 0 ]
then
zenity --warning --text "$ip\nConflito de IP detectado."
exit 1
else
zenity --info --text "$ip\nNenhum problema encontrado."
exit 0
fi
Limpar o histórico dos documentos recentes do Ubuntu 11.10
SCRIPT PARA AUTOMAÇÃO NA CRIAÇÃO DE USUÁRIOS NO AMBIENTE LINUX.
Nenhum comentário foi encontrado.
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
LazyDocker – Interface de Usuário em Tempo Real para o Docker
O widget do Plasma 6 Área de Notificação
[Resolvido] Algo deu errado ao abrir seu perfil
Quero instalar, configurar, setar tamanho do rsyslog. (4)
[Resolvido] Conselho distribuiçao brasileira (9)









