Vorrei trovare un modo per stampare per ogni indirizzo IP trovato avere almeno una porta aperta, per stampare quell'indirizzo IP, seguito da un elenco di porte aperte separate da virgole. Le porte e l'indirizzo IP devono essere separati da un delimitatore di tabulazione.
Posso farlo in modo brutto, trascinando solo l'indirizzo IP, scrivendolo su file, quindi riaccompagnando il file nmap usando il file dei risultati dell'indirizzo IP come file di input, quindi tagliando le porte aperte con cut e sed, scrivendolo su un file e quindi unendo entrambi i file. Questo è un processo brutto e non funziona in modo affidabile per situazioni marginali.
C'è un modo semplice per farlo in una riga con awk? Penserei che avrei bisogno di avere una funzione in awk per trovare tutte le porte aperte e restituirle in modo che possano essere stampate insieme all'indirizzo IP, ma non ho trovato il modo di farlo.
Dati sorgente di esempio:
Host: 10.0.0.101 ()Ports: 21/closed/tcp//ftp///, 22/closed/tcp//ssh///, 23/closed/tcp//telnet///, 25/closed/tcp//smtp///, 53/closed/tcp//domain///, 110/closed/tcp//pop3///, 139/open/tcp//netbios-ssn///, 143/closed/tcp//imap///, 445/open/tcp//microsoft-ds///, 3389/closed/tcp//ms-wbt-server///
Dati di output previsti:
10.0.0.101 139,445