Verifica duplicação de IPs na rede
Publicado por Osama Jr. (última atualização em 10/07/2010)
[ Hits: 6.278 ]
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
Lista de programas, escolha e instalação
Adicionar e Deletar usuários do Samba/Squid
Verifica se quem executa é root
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
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Fiz uma pergunta no fórum mas não consigo localizar (20)
Quais os códigos mais dificeis que vcs sabem fazer? (8)
Pfsense inacessivel após um periodo de tempo (1)
Não consigo instalar distro antiga no virtualbox nem direto no hd (9)









