Wie Sie bestimmen, welche IP-Adressen in einem bestimmten Bereich haben, den port 80 mit nmap?
Ich bin neu in bash scripting, und ich versuche, diese arbeiten:
Scannen eines IP-Bereichs für die Suche nach Geräten mit dem port 80 öffnen...
Ich denke, es muss so Aussehen:
#!/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
Habe ich auch nur wollen, um zu sehen die Ergebnisse wie dieses:
-----------------------------------
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
-----------------------------------
(Also ohne Fehler oder nmap
's normale Ausgänge..)
Kann mir jemand helfen?
InformationsquelleAutor der Frage bananah | 2010-09-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
nmap
kommt mit einem schönen Ausgang parameter-oG
(grepable Ausgabe) das macht das Parsen einfacher. Auch ist es nicht notwendig, Durchlaufen alle IP-Adressen, die Sie Scannen möchten. nmap ist netmask bewusst.Deinem Beispiel kann geschrieben werden als:
Den
-oG
ermöglicht die grepable Ausgabeund-
gibt die Datei zur Ausgabe (in diesem Fallstdout
). Das pipe-symbol leitet die Ausgabe von nmap (stdout) zu grep, das gibt nur Zeilen mit80/open
in diesem Fall.InformationsquelleAutor der Antwort Manuel Faux
Versuchen, diese
Den
--open
wird nur eine Liste der host mit port 80 geöffnet. Auf diese Weise sparen Sie überprüfen müssen, in Ihre shell-Skript, da die Filterung bereits von nmap selbst.https://nmap.org/book/man-briefoptions.html
InformationsquelleAutor der Antwort Mohamed