Pinga vários IPs, tentando descobrir o hostname e MAC
Publicado por eli marques junior (última atualização em 16/08/2013)
[ Hits: 5.407 ]
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
Instalação de servidor DHCP rápido e fácil
Instalação de pacotes em uma lista
Script de compilação automatica do GCC
Backup Remoto com rsync, automatico, para varias maquinas, sem senha.
Script de backup que envia por FTP, gera log e envia por e-mail
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
Solução rápida para o problema do Network Manager conectar mas não navegar
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
Interface Gráfica no Linux Mint 22.1. (3)
Ubuntu 25.04 não instala. (11)