Come scrivere script bash per cercare gli IP in un file e metterli scrivere un altro file?
Domanda
Ho bisogno di scrivere uno script bash che avrà un file di output nmap grepable che visualizza gli indirizzi IP con la porta 80 aperta e copiare gli IP che hanno la porta 80 aperta a un altro file di testo. L'output è simile a questo:
# Nmap 4.76 scan initiated Thu Dec 3 13:36:29 2009 as: nmap -iL ip.txt -p 80 -r -R -PN --open -oA output
Host: 192.168.1.100 () Status: Up
Host: 192.168.1.100 () Ports: 80/open/tcp//http///
Host: 192.168.1.100 () Status: Up
# Nmap done at Thu Dec 3 13:36:29 2009 -- 3 IP addresses (3 hosts up) scanned in 0.28 seconds
Sono abbastanza nuovo per lo scripting bash quindi non sono sicuro da dove cominciare con questo. Se mi può aiutare con questo script sarebbe molto apprezzato.
Soluzione
questo può essere ridotto a una chiamata awk:
awk '/80\/open/{print $2}' infile > iplist_port_80
Altri suggerimenti
Con grep e sed / awk
grep -e '80/open/tcp' infile | awk '{print $2}' | sort -u > outfile
sarebbe il mio primo tentativo.
non avere familiarità con l'invocazione nmap e il formato di output, ma ancora, questo dovrebbe funzionare:
nmap | grep -e 'Ports:.80\/' |sed 's/Host:.//;s/.(.*//'|sort -u > out
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow