Pinga vários IPs, tentando descobrir o hostname e MAC
Publicado por eli marques junior (última atualização em 16/08/2013)
[ Hits: 5.688 ]
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
Montagem e desmontagem de dispositivos
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
O que houve com slackware ??? (12)
Alterar conteúdo de dica [RESOLVIDO] (3)
Vou destruir sua infância:) (5)









