解析(可伪造的)nmap输出以使用awk之类的文本工具打印IP \ t [所有打开的端口]的列表
我想找到一种方法,为发现至少有一个开放端口的每个IP地址打印,打印该IP地址,然后列出由逗号分隔的开放端口列表。端口和IP地址应使用制表符分隔符分隔。 我可以通过丑陋的方式来做到这一点,方法是仅对IP地址进行grep,将其写入文件,然后使用IP地址结果文件作为输入文件再次对nmap文件进行grep,然后使用cut和sed修剪打开的端口,将其写入文件,然后加入两个文件。这是一个丑陋的过程,在边缘情况下无法可靠地工作。 有没有一种简单的方法可以用awk做到这一点?我想我需要在awk中有一个函数来查找所有打开的端口并返回它们,以便可以将它们与IP地址一起打印,但是我还没有找到如何做的方法。 源数据示例: 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/// 预期输出数据: 10.0.0.101 139,445