#!/bin/bash
#
# maprede.sh - Lista os hosts(IPs) disponiveis na rede.
#
# Autor: rodney barreto e-mail: rodney_qg@yahoo.com.br
# 18/10/2004
#--------------------------------------------------------------
REDE=10.1.100.
for HOST in `seq 254`
do
# Da um ping no endereco ip verificando se houve recebimento do pacote
# contando a linha de retorno.
IP=$(ping -c1 $REDE$HOST | fgrep "1 packets 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
[3] Comentário enviado por Ismael-Ataide em 30/03/2012 - 16:50h
Como o rogerlovato disse é mas fácil o nmap, já usei em Ubuntu e Fedora, só um detalhe, se trocar para (-sS,- sT, -sP, -sU, -sO e -O) tera mais detalhes da maquina.
-sT - Com esse parâmetro é feito um escaneamento através de tentativas de conexão TCP. Essa forma é muito fácil de ser identificada por firewalls e IDS;
-sS – Assim, a tentativa será com pacotes TCP com a flag SYN ligada, ou seja, como apenas uma requisição de conexão. Essa técnica dificulta um pouco a detecção;
-sP - Com essa opção o escaneamento será feito através de pacotes ICMP echo request. Verifica apenas se o host está ativo;
-sU - Envia pacotes UDP com 0 byte para determinar o estado dessas portas;
-sO - É usado para tentar determinar os protocolos suportados pelo host;
-O - Com esse parâmetro é feito uma tentativa de determinar o sistema operacional através de uma técnica conhecida como Active FingerPrint.
Ex: nmap -sS 192.168.0.0 /24
No exemplo acima supomos que a rede seja 192.168.0... e com máscara padrão 255.255.255.0.