Pinga vários IPs, tentando descobrir o hostname e MAC
Publicado por eli marques junior (última atualização em 16/08/2013)
[ Hits: 5.381 ]
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
Script Backup ultimo arquivo criado em um diretorio feito TAR direto para DAT
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Minha rede tem um espaço invisível que não dá pra digitar o nome da re... (1)
Pedagogia no brasil não passa de alfabetização por m4sturbação mental ... (2)
compilação samba 4.22 rock linux 9.5 (3)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (7)