Python,Nmap NSE脚本的输出(libnmap模块)

Python,Nmap NSE脚本的输出(libnmap模块),python,nmap,Python,Nmap,我正在尝试将Nmap NSE脚本的输出正确地输出到我的终端。我正在使用libnmap模块,并且已经阅读了一些示例和文档,所以我不确定哪里出了问题 from libnmap.parser import NmapParser p = NmapParser.parse_fromfile("test.xml") for host in p.hosts: for service in host.services: for script_out in service.scripts

我正在尝试将Nmap NSE脚本的输出正确地输出到我的终端。我正在使用libnmap模块,并且已经阅读了一些示例和文档,所以我不确定哪里出了问题

from libnmap.parser import NmapParser

p = NmapParser.parse_fromfile("test.xml")
for host in p.hosts:
    for service in host.services:
        for script_out in service.scripts_results:
            print "Output of {0}: {1}".format(script_out['id'], script_out['output']
当我运行上面的脚本时,没有输出任何内容。如果我让上面脚本的逻辑正常工作,那么我可能可以让它在我的主脚本中工作


我在终端上运行了这个nmap扫描来测试脚本
nmap-sV--script dns-brute.nse-oX test.xml google.com

我遇到了同样的问题,在查看了源代码和xml文件之后,您会注意到,当脚本扫描运行xml文件脚本的主机时,有一个元素Hostscript,它决定了其他脚本的不同(例如:ftp anon)

好的,试试这个,它应该会起作用

从libnmap.parser导入NmapParser
p=NmapParser.parse_fromfile(“test.xml”)
对于p.hosts中的主机:
对于host.scripts\u结果中的script\u out:
打印“输出{0}:{1}”。格式(脚本输出['id'],脚本输出['Output']

如果在p.hosts:print host中对主机执行
操作,输出是什么?NmapHost:[216.58.216.110(google.com ord30s22-in-f14.1e100.net)-已启动]哦,我希望看到某种字典结构。但是可能是由于某种原因,
.services
和/或
.scripts\u results
是空的?可能解析器和xml不是1:1映射的?一种解决方法是在其中运行代码,并检查
parse\u fromfile
返回的对象中的内容,或者使用<代码>目录
或使用制表符完成。