我正在做的一个熟悉项目就是解析nmap
结果。
(我知道-oG
选项,但我在这里使用的是grep
、awk
、for
和while
循环)。
下面是我试图解析的内容:
Starting Nmap 7.60 ( https://nmap.org ) at 2017-12-05 11:26 EST
Nmap scan report for house.router.nick (192.168.1.1)
Host is up (0.00059s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
427/tcp open svrloc
1900/tcp open upnp
MAC Address: 50:C7:BF:A8:CF:C8 (Tp-link Technologies)
Nmap scan report for 192.168.1.2
Host is up (0.00034s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
MAC Address: 48:F8:B3:C9:AE:BB (Cisco-Linksys)
我想得到的是:
22/ssh
====
192.168.1.1
192.168.1.2
http
===
192.168.1.2
到目前为止,我有这样的想法:
grep -E "tcp.*open" nmap.txt | awk '{ print $3 }' | sort | uniq
对于我来说,我想不出如何把它放到一个循环中,并从上面得到想要的输出。
你能帮助我了解并解释为什么你会得到你所做的解决方案吗?如果我不能理解背后的逻辑,那么获得一个潜在的解决方案就没有意义了。
https://stackoverflow.com/questions/51865475
复制相似问题