Pinga vários IPs, tentando descobrir o hostname e MAC
Publicado por eli marques junior (última atualização em 16/08/2013)
[ Hits: 5.638 ]
Pinga vários IPs, tentando descobrir o hostname e MAC.
A saída do script é para ser assim:
10.1.4.28 OK
CAIXABRANCA
MAC Address = AC-16-2D-34-9C-BD
10.1.4.29 OK
CAIXAPRETA
MAC Address = AC-16-2D-34-9C-B4
10.41.4.30 DOWN
10.41.4.31 DOWN
10.41.4.32 DOWN
Exemplo:
$ ./eping.sh -p 10.196.1 1 250
#!/bin/bash
#ELI MARQUES JUNIOR
#eli.marquesjunior@gmail.com
function pinga_neles(){
clear
num=0
DIR_cria=/tmp/ping-eli/cria
DIR=/tmp/ping-eli
if [ -d "$DIR_cria/pingar" ] && [ -d "$DIR_cria/pingando" ];then
rm $DIR/ARQ-final.txt
rm $DIR/RELATORIO.txt
else
mkdir -p $DIR_cria/pingar
mkdir -p $DIR_cria/pingando
fi
for (( a=$3; a<=$4; a++ )); do
echo "
ping -c 2 $2.$a >> /dev/null
x=\$?
if [ \$x -eq 0 ]; then
echo "$2.$a OK" >> $DIR_cria/ARQ$a.txt
nmblookup -A $2.$a | egrep -i '(mac|<00>)'| grep -vi \<group\> | cut -d' ' -f1,2-4 >> $DIR_cria/ARQ$a.txt
echo " " >> $DIR_cria/ARQ$a.txt
else
echo $2.$a DOWN >> $DIR_cria/ARQ$a.txt
fi
" >> $DIR_cria/pingar/script.$num.sh
num=`expr $num + 1`
done
cd $DIR_cria/pingar/
count=`ls | wc -l`
echo Total: $count
echo -------------------------
count0=0
lock=20
while [ $count0 -lt $count ]; do
echo "Falta(m): `expr $count - $count0`"
mv script.$count0.sh ../pingando/
sh $DIR_cria/pingando/script.$count0.sh &
count0=`expr $count0 + 1`
if [ $count0 == $lock ]; then
echo Lock: $lock
tempo=\.
segundos=1
while (( $segundos <= 5)); do
echo -en "\rAguarde $tempo `expr 5 - $segundos`"
sleep 1
tempo=$tempo\.
((segundos++))
if (( $segundos > 5 )); then
echo -e "\n"
fi
done
lock=`expr 20 + $lock`
fi
done
if [ $count0 == $count ]; then
tempo=\.
count=1
while (( $count <= 10)); do
echo -en "\rAguarde mais `expr 10 - $count` segundos $tempo"
sleep 1
tempo=$tempo\.
((count++))
done
cat $DIR_cria/ARQ*.txt >> $DIR/ARQ-final.txt
rm $DIR_cria/ARQ*.txt
clear
echo "-------------------------------------------------------"
rm ../pingando/script.*.sh
grep -A 3 -i OK $DIR/ARQ-final.txt | grep -vi down >> $DIR/RELATORIO.txt
grep -i down $DIR/ARQ-final.txt | sort -h >> $DIR/RELATORIO.txt
more $DIR/RELATORIO.txt
fi
}
if [ -z "$1" ] || [ "$1" != "-p" ] && [[ "$1" != "-"* ]]; then
echo " $script -h for help"
fi
while getopts ":hp:" opts; do
script=`echo $0 | cut -d/ -f6`
case $opts in
h) echo " $script -p \"rede\" \"inicio\" \"fim\""
echo " ex.: $script -p 10.196.3 1 254";;
p) pinga_neles $1 $2 $3 $4;;
:) echo " Option -p requires an argument."
exit 1;;
*) echo " $script -h for help"
exit 1;;
esac
done
Instalador do plugin Flash 64 bits para Linux e UNIX/UNIX-like
Organizador da saída do objdump
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.
Não consigo instalar distro antiga no virtualbox nem direto no hd (15)
Quais os códigos mais dificeis que vcs sabem fazer? (12)
systemd-resol... precisa ser reiniciado periodicamente [RESOLVIDO] (7)









