Como formatar a saída do nmap em um formato pré-definido específico

1

Suponha que eu esteja executando o shell nmap para descobrir uma saída simples. Estamos todos familiarizados com este:

Starting Nmap 6.47 ( http://nmap.org ) at.... 
Nmap scan report for www.google.com (172.217.26.68)
Host is up (0.085s latency).
rDNS record for 172.217.26.68: sin10s02-in-f68.1e100.net
Not shown: 998 filtered ports
PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 9.38 seconds

Agora quero o estado da porta e o serviço especificamente Por exemplo:

Open ports are:
80
443

ou algo assim. O ponto é que eu quero usar uma saída específica e usá-lo em outro lugar. Alguém pode me dar um exemplo muito simples?

    
por Sohan Arafat 21.02.2017 / 05:31

3 respostas

0

Tente com este código:

echo "Open ports are: ";nmap $HOST |awk -F'/' '/open/ {print $1}'
    
por 21.02.2017 / 05:49
0
$ echo 'Open ports are:';nmap localhost -oG -|grep -oP '[0-9]*(?=/open)'
Open ports are:
22
6000
    
por 21.02.2017 / 05:44
0
your_nmap_cmd |
sed -ne '
  /^PORT/!d
  h;n              # grab PORT line & prepare for port info
  \|/|!q           # we are done once no / found so quitting
  s|/.* open .*||p # display port num only for open state
  G;D              # without reading next input goto top
'
    
por 21.02.2017 / 07:02