sexta-feira, 9 de julho de 2010

Descobrir ipś ativos na rede.

Trabalho em um local onde a rede é configurada por uma empresa do estado.
Consequentimente os caras a configuraram de modo que apenas funciona-se o compartilhamento de internet.

E devido a necessidade de saber quais ip's estavam na rede, fui atras de informações na rede e encontrei esse código de um script feito por um membro no VOL. De inicio o script não funcionou perfeitamente mas logo após algumas horas de estudo e analise, consegui fazer com que ele fizesse o que foi programado para fazer.

Devido a isso estou postando o código desse rapazinho aqui.

Mas o que ele faz afinal de contas?

Ele simplesmente envia ping's em serie para uma range que vc configura no código e analisa o retorno desses pacotes para saber se as maquinas estão ou não ativas.

Todos sabemos que isso pode ser feito de diversas maneiras como o 'pingando o broadcast', usando o 'arp -a' e etc. Mas acreditem, nem sempre esses métodos funcionam.

Código Script.

#!/bin/bash
#
# maprede.sh - Lista os hosts(IPs) disponíveis na rede.
#
# Autor: rodney barreto e-mail: rodney_qg@yahoo.com.br
# 18/10/2004
#
# Alterado por: Sidney_HOS e-mail: king.sidney@yahoo.com.br
# 09/07/2010
#--------------------------------------------------------------
REDE=10.73.76.
for HOST in `seq 1 30` ## Altere a seqüencia como vc bem intender
do

# Da um ping no endereco ip verificando se houve recebimento do pacote
# contando a linha de retorno.IP=`ping -c1 $REDE$HOST | grep "1 received" | wc -l`

# Testa se a linha de retorno e igual a 1 e exibe a mensagem
if [ $IP == 1 ];
then
echo O host $REDE$HOST esta disponivel na rede
fi
done