Eu tenho várias máquinas em um intervalo de endereços IP que desejo executar ping simultaneamente, como uma maneira rápida e suja de saber quais estão ativadas. Que software (gratuito) posso usar para fazer isso?
Estou usando o Windows Vista .
Eu tenho várias máquinas em um intervalo de endereços IP que desejo executar ping simultaneamente, como uma maneira rápida e suja de saber quais estão ativadas. Que software (gratuito) posso usar para fazer isso?
Estou usando o Windows Vista .
Respostas:
O Nmap está disponível para Windows:
# nmap -sP 10.0.10.1-100
-snnecessário executar uma "varredura sem porta", procurando apenas hosts.
Eu usei este comando
for %%i in 200 to 254 do ping 10.1.1.%%i
em um arquivo em lotes por um motivo semelhante
Em vez de efetuar 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.0para corresponder ao seu próprio ID de rede.
Isso fará ping em todos os endereços IP no segmento de rede 192.168.0.0 e criará um arquivo de texto chamado ipaddresses.txt C: \, onde listará apenas os endereços IP que deram uma resposta.
Você também pode adicionar -aao comando ping para resolver todos os endereços IP de resposta dos nomes de host, mas isso fará com que o script leve um tempo considerável para concluir:
FOR /L %i IN (1,1,254) DO ping -a -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt
Você pode escrever um script Bash que percorre um intervalo de endereços IP e os envia por ping. Um exemplo que pings endereça no intervalo 10.1.1.1 a 10.1.1.255 (inclusive):
for i in {100..255}
do
ping 10.1.1.$i
done
ping 10.1.1.iprovavelmente quer ser ping 10.1.1.$i.
Salve o script abaixo no servidor com uma extensão .batou.cmd e chame o arquivo no prompt de comando. Deve solicitar que você insira o intervalo de endereços IP.
Por favor, insira 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
Depois que o comando for executado, ele criará um nome de arquivo de texto pingnet.logna 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 poupa muito tempo.
O Angry IP Scanner é ótimo, mas eu prefiro as ferramentas CLI. Veja se você pode obter esse script do PowerShell em execução no Vista. https://github.com/webstersprodigy/PowerSploit/blob/Portscan/Recon/Invoke-Portscan.ps1
Sugiro também obter acesso a uma CLI Linux usando um live cd / usb do linux, inicialização dupla ou uma VM no VirtualBox. (Instale o VirtualBox, adicione uma nova vm, instale o Debian.) Uma CLI Linux é inestimável.
Em uma CLI 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 alcance de rede (a parte '172.10.1') e você estará fora. Isso fornecerá uma lista de todos os hosts na rede que respondem às solicitações de eco (ping) do ICMP e os solucionará no servidor DNS.
Nota: 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 portas e baseia seus resultados na atividade em mais do que apenas respostas ICMP. É muito usado por pentesters e vale a pena aprender.