我一直在直接从python命令行使用这个模块,试图弄清楚它是如何工作的,然后开始拼凑我想要编写的脚本需要如何工作。我想做的是,首先执行一个简单的主机发现扫描,比如-n-sP-PE,然后使用all_hosts()函数为实际的端口扫描生成主机列表。所以如果我这样做。。。
import nmap
nm = nmap.PortScanner()
nm.scan(hosts='XXX.XXX.XXX.X/24', arguments='-n -sP -PE')
然后nm.all_hosts()给出了我要查找的内容,一个扫描找到的所有活动主机的简短列表。现在,我遇到的问题是把它传给下一次扫描。如果你只是做些
hostlist = nm.all_hosts()
nm.scan(hosts=hostlist etc)
然后它抱怨不能使用hosts参数的列表。好吧,说得通。所以我试着用逗号分隔,所以它们会显示为aaa.aaa.aaa.aaa,bbb.bbb.bbb.bbb等等,通过这样做。。。
hostlist = ""
for item in nm.all_hosts():
hostlist = item + ", " + hostlist
然后,只要转储hostlist,它看起来就是我所希望的那样,但是如果您尝试将其插入hosts参数,它会显示“未能解析”alltheiplisted“警告:未指定目标,因此扫描了0个主机。
有没有人有什么好主意来解决这个问题?可能是把IPs从文件中取出?如果一根绳子坏了,我也会遇到同样的问题。。。
如果你去掉逗号,它会起作用的。列出的多个主机之间只有一个空格。
使用示例:
相关问题 更多 >
编程相关推荐