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:
A maneira mais rápida é usar o Angry IP Scanner
Eu o uso da mesma maneira que você deseja!
O Nmap está disponível para Windows:
# nmap -sP 10.0.10.1-100
-sn
necessá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
Aqui está o intervalo de endereços IP, como você pode notar em:
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.0
para 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 -a
ao 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.i
provavelmente quer ser ping 10.1.1.$i
.
Salve o script abaixo no servidor com uma extensão .bat
ou.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.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 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.