A maneira mais rápida é usar o Scanner IP com raiva
Eu uso da mesma maneira que você quer!
Eu tenho um monte de máquinas em um intervalo de endereços IP que eu quero pingar simultaneamente como uma maneira rápida e suja de dizer quais estão ligados. Que software (gratuito) posso usar para fazer isso?
Estou usando o Windows Vista .
O Nmap está disponível para Windows:
# nmap -sP 10.0.10.1-100
Eu usei este comando
for %%i in 200 to 254 do ping 10.1.1.%%i
em um arquivo em lote por um motivo semelhante
experimente fping
Em vez de fazer o ping manualmente em todos os endereços IP da sua LAN, você pode fazer o seguinte:
Abra um prompt de comando e digite:
FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt
-n 1
significa que apenas 1 pacote de ping será enviado para cada computador.
Altere 192.168.0
para corresponder ao seu próprio ID de rede.
Isso fará o ping de todos os endereços IP no segmento de rede 192.168.0.0 e criará um arquivo de texto chamado ipaddresses.txt
em C: \, onde ele listará apenas os endereços IP que deram uma resposta.
Você também pode adicionar -a
ao comando ping para resolver todos os endereços IP de resposta aos nomes de host, mas isso fará com que o script leve um tempo considerável para ser concluído:
FOR /L %i IN (1,1,254) DO ping -a -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt
Você pode simplesmente escrever um script Bash que percorra um intervalo de endereços IP e os insira. Um exemplo que pinga endereços no intervalo de 10.1.1.1 a 10.1.1.255 (inclusive):
for i in {100..255}
do
ping 10.1.1.$i
done
Salve o script abaixo no servidor com uma extensão de .bat
ou .cmd
e chame o arquivo no prompt de comando. Ele deve solicitar que você insira o intervalo de endereços IP.
Por favor, digite apenas três octetos do endereço IP.
@echo off
SET count=0
SET /p subnet=Please enter IP address range (for example, 192.168.0)
:start
SET /a count=%count%+1
cls
ECHO. & ECHO Trying %subnet%.%count% & ECHO.
ping -n 1 -w 1000 %subnet%.%count% >nul
IF %errorlevel%==0 echo %subnet%.%count% UP >> c:\pingnet.log
IF %errorlevel%==1 echo %subnet%.%count% DOWN >> c:\pingnet.log
IF %count%==254 goto :eof
GOTO start
Quando o comando for executado, ele criará um nome de arquivo de texto pingnet.log
na raiz da unidade C. Esse arquivo deve fornecer uma lista de endereços IP usados e inativos (gratuitos).
Por exemplo:
10.2.214.1 UP
10.2.214.2 UP
10.2.214.3 UP
10.2.214.4 DOWN
É muito simples de executar e deve poupar muito tempo.
O Angry IP Scanner é ótimo, mas eu prefiro as ferramentas CLI. Veja se você pode obter este script do PowerShell rodando no Vista. link
Eu também sugiro ter acesso a uma CLI do Linux usando um live cd / usb do linux, dual boot, ou um vm no VirtualBox. (Instale o VirtualBox, adicione um novo vm, instale o Debian.) Um linux CLI é inestimável.
De uma CLI do Linux, execute o seguinte:
for ip in 172.10.1.{1..254}; do ping -c 1 -w 1 $ip > /dev/null && echo $ip "$(nslookup $ip | grep 'name = ' | awk -F ' = ' '{print $2}')"; done
Ajuste para o seu intervalo de rede (a parte '172.10.1') e está desativado. Isso fornecerá uma lista de todos os hosts na rede que respondem às solicitações de eco (ping) do ICMP e as resolvem em relação ao servidor DNS.
Observação: essa não é a maneira mais confiável de testar hosts ativos, pois eles podem ter o ICMP bloqueado.
nmap -sP 192.168.1.0/24
Nota: O Nmap é mais confiável, pois é um scanner de porta e baseia seus resultados na atividade em mais do que apenas respostas de ICMP. É muito usado pelos pentesters e vale a pena aprender.