在nmap命令行中,我们可以在文件中提供主机列表,并且可以使用-iL参数将文件作为输入提供。我不确定如何使用python nmap复制相同的功能。 Python nmap文档并未涵盖所有示例。因此需要帮助。
答案 0 :(得分:1)
您可以使用-iL
选项,如下所示。它对我有用。
nm.scan(arguments='-iL /tmp/hosts.txt')
下面给出了完整程序
import sys
import os
import nmap # import nmap.py module
try:
nm = nmap.PortScanner() # instantiate nmap.PortScanner object
except nmap.PortScannerError:
print('Nmap not found', sys.exc_info()[0])
sys.exit(1)
except:
print("Unexpected error:", sys.exc_info()[0])
sys.exit(1)
nm.scan(arguments='-iL /tmp/hosts.txt')
for host in nm.all_hosts():
print('----------------------------------------------------')
print('Host : %s (%s)' % (host, nm[host].hostname()))
print('State : {0}'.format(nm[host].state()))
# print result as CSV
print(nm.csv())
答案 1 :(得分:0)
我不认为python-nmap开箱即用地支持目标列表。您可能需要使用python自己打开和解析列表,然后循环执行扫描。我可能看起来像这样:
import nmap
nm = nmap.PortScanner()
port_range='22'
with open('./path/to/list', 'r') as targets:
for target in targets:
nm.scan(target, port_range)
# Do something with results