Pinga vários IPs, tentando descobrir o hostname e MAC
Publicado por eli marques junior (última atualização em 16/08/2013)
[ Hits: 5.642 ]
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
zwtsc - cliente gráfico para Terminal Service
Encerrar vários processos de uma mesma aplicação
SabATT - Facilitador de atualização (Equo - Sabayon)
Instalação do BrOffice.org 3.2.1 em distros Debian-like
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
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
Assisti Avatar 3: Fogo e Cinzas (3)
Conky, alerta de temperatura alta (8)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (42)









