Tente com este código:
echo "Open ports are: ";nmap $HOST |awk -F'/' '/open/ {print $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?
Tente com este código:
echo "Open ports are: ";nmap $HOST |awk -F'/' '/open/ {print $1}'
$ echo 'Open ports are:';nmap localhost -oG -|grep -oP '[0-9]*(?=/open)'
Open ports are:
22
6000
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
'
Tags text-processing nmap