Tengo un montón de máquinas en un rango de direcciones IP que quiero hacer ping simultáneamente como una forma rápida y sucia de saber cuáles están encendidas. ¿Qué software (gratuito) puedo usar para hacer esto?
Estoy usando Windows Vista .
Tengo un montón de máquinas en un rango de direcciones IP que quiero hacer ping simultáneamente como una forma rápida y sucia de saber cuáles están encendidas. ¿Qué software (gratuito) puedo usar para hacer esto?
Estoy usando Windows Vista .
Respuestas:
La forma más rápida es usar Angry IP Scanner
¡Lo uso de la misma manera que quieres!
Nmap está disponible para Windows:
# nmap -sP 10.0.10.1-100
-sn
para ejecutar un "escaneo sin puerto", solo buscando hosts.
He usado este comando
for %%i in 200 to 254 do ping 10.1.1.%%i
en un archivo por lotes por una razón similar
Aquí está el rango de direcciones IP que puede observar en:
En lugar de hacer ping manualmente a todas las direcciones IP en su LAN, puede hacer lo siguiente:
Abra un símbolo del sistema y escriba:
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 solo se enviará 1 paquete de ping a cada computadora.
Cambie 192.168.0
para que coincida con su propia ID de red.
Esto hará ping a todas las direcciones IP en el segmento de red 192.168.0.0 y creará un archivo de texto llamado ipaddresses.txt
en C: \, donde enumerará solo las direcciones IP que dieron una respuesta.
También puede agregar -a
al comando ping para resolver todas las direcciones IP que responden a los nombres de host, pero al hacerlo, el script tardará un tiempo considerable en finalizar:
FOR /L %i IN (1,1,254) DO ping -a -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt
Simplemente podría escribir un script Bash que recorra un rango de direcciones IP y los haga ping. Un ejemplo que hace ping a direcciones en el rango de 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
probablemente quiera serlo ping 10.1.1.$i
.
Guarde el siguiente script en el servidor con una extensión de .bat
o .cmd
y llame al archivo desde el símbolo del sistema. Debería solicitarle que ingrese el rango de direcciones IP.
Ingrese solo tres octetos de la dirección 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
Una vez que el comando se haya ejecutado, creará un nombre de archivo de texto pingnet.log
en la raíz de la unidad C. Ese archivo debería darle una lista de direcciones IP usadas y desactivadas (gratuitas).
Por ejemplo:
10.2.214.1 UP
10.2.214.2 UP
10.2.214.3 UP
10.2.214.4 DOWN
Es bastante simple de ejecutar y debería ahorrarle mucho tiempo.
Angry IP Scanner es genial, pero prefiero las herramientas CLI. Vea si puede ejecutar este script de PowerShell en Vista. https://github.com/webstersprodigy/PowerSploit/blob/Portscan/Recon/Invoke-Portscan.ps1
También sugiero obtener acceso a una CLI de Linux utilizando un cd / usb en vivo de Linux, arranque dual o una máquina virtual en VirtualBox. (Instale VirtualBox, agregue un nuevo vm, instale Debian). Una CLI de Linux es invaluable.
Desde una CLI de Linux, ejecute lo siguiente:
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
Ajústelo para su rango de red (la parte '172.10.1') y estará listo. Esto proporcionará una lista de todos los hosts en la red que responden a las solicitudes de eco (ping) ICMP y los resuelve en su servidor DNS.
Nota: Esta no es la forma más confiable de probar hosts en vivo, ya que pueden tener bloqueado ICMP.
nmap -sP 192.168.1.0/24
Nota: Nmap es más confiable ya que es un escáner de puertos y basa sus resultados en la actividad en más que solo respuestas ICMP. Es muy utilizado por los pentesters y vale la pena aprenderlo.