bash - usar - ¿Cómo determinar qué IP en un rango dado tiene el puerto 80 usando nmap?
nmap comandos (2)
Prueba esto
nmap --open -p80 192.168.0.*
El --open
solo mostrará el host con el puerto 80 abierto. De esta manera, ahorrará tener que revisar su script de shell, ya que el filtrado ya lo realiza nmap.
Soy nuevo en bash scripting y estoy tratando de hacer que esto funcione:
Escaneando un rango de IP para encontrar dispositivos con el puerto 80 abierto ... Creo que tiene que verse así:
#!/bin/bash
echo -----------------------------------
for ip in 192.168.0.{1,.255}; do
nmap -p80 192.168.0.1
if #open; then
echo "{ip} has the port 80 open"
else
#do nothing
fi
done
echo -----------------------------------
exit 0
También quiero ver los resultados de esta manera:
-----------------------------------
192.168.0.1 has the port 80 open
192.168.0.10 has the port 80 open
192.168.0.13 has the port 80 open
192.168.0.15 has the port 80 open
-----------------------------------
(Así que sin errores o salidas normales de nmap
..)
¿Puede alguien ayudarme para esto?
nmap
viene con un agradable parámetro de salida -oG
( salida grepable ) que hace que el análisis sea más fácil. Además, no es necesario iterar a través de todas las direcciones IP que desea escanear. nmap es consciente de la máscara de red.
Tu ejemplo puede ser escrito como:
nmap -p80 192.168.0.0/24 -oG - | grep 80/open
La -oG
habilita la salida grepable , y -
especifica el archivo al que se enviará (en este caso, stdout
). El símbolo de tubería redirige la salida de nmap (stdout) a grep, que en este caso solo devuelve las líneas que contienen 80/open
.