Pinga vários IPs, tentando descobrir o hostname e MAC
Publicado por eli marques junior (última atualização em 16/08/2013)
[ Hits: 5.583 ]
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
Shell para extrair informações de impressoras Brother
Script para ripar CDs de audio e codificar as faixas para MP3
Calculadora para eletrodomésticos
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
ERRO: LAZARUS 4.2 64 no Linux MINT não entra mais apos ajustar desktop... (0)
Pergunta: Meu teclado não está respondendo direito como e consertar? (2)
Secure boot, artigo interessante, nada técnico. (6)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)









