需要从扫描报告中获取特定数据块

时间:2015-06-30 17:11:11

标签: awk sed grep report nmap

我在大型网络上完成了nmap扫描,现在我正在尝试组织数据。

我的报告是:

的结果
nmap -A -p 0-65535 -iL [filename] -oX [filename]

所以我现在要做的是提取我扫描的每个IP地址的结果。我在这里发现了另一篇文章,解决方案是使用awk:

awk 'BEGIN {RS="< host ";} /^starttime/ {print RS $0;}' [filename]

这对我没有用,因为它不是在第一个块之后停止,而是直接通过报告。我当然意识到这是因为&#39;&lt;主持人&#39;和&#39; starttime&#39;在输出中找到该范围内的所有IP地址。

我是否还要运行nmap报告并提取每个IP地址的扫描报告并将其保存在单独的文件中?一个For循环当然需要这样做...一旦找到一个块的提取和写入文件然后可以使用for循环扩展(我认为)......

或者,根据经验或纯粹的灵感,是否有人有更精致的解决方案/建议?

非常感谢任何有关此事的帮助。

1 个答案:

答案 0 :(得分:0)

不要使用awk来解析XML数据。 Nmap&#39; s XML output format已有详细记录,Python中也有解析器(Ndiff也可以安装为Python 2库并且内置了解析器),{{ 3}},Ruby,或者您可以使用Perl