간단한 출력을 찾기 위해 nmap 쉘을 실행한다고 가정해 보겠습니다. 우리는 모두 다음 사항에 대해 잘 알고 있습니다.
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
이제 특정 포트 상태와 서비스를 원합니다. 예:
Open ports are:
80
443
또는 그런 것. 요점은 특정 출력을 가져와 다른 곳에서 사용하고 싶다는 것입니다. 누구든지 나에게 매우 간단한 예를 들어 줄 수 있습니까?
답변1
다음 코드를 사용해 보세요:
echo "Open ports are: ";nmap $HOST |awk -F'/' '/open/ {print $1}'
답변2
$ echo 'Open ports are:';nmap localhost -oG -|grep -oP '[0-9]*(?=/open)'
Open ports are:
22
6000
답변3
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
'