Pinga vários IPs, tentando descobrir o hostname e MAC
Publicado por eli marques junior (última atualização em 16/08/2013)
[ Hits: 5.639 ]
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
InstallDPKG reformulado - instalando pacotes DEB no Slackware
Formatar disquetes msdos & ext2.
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
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Formas seguras de instalar Debian Sid (2)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (12)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (5)
Alguém executou um rm e quase mata a Pixar! (3)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









