如何在python nmap中提供inputfilefile(-iL)选项?

时间:2019-03-05 05:26:52

标签: python python-3.x nmap

在nmap命令行中,我们可以在文件中提供主机列表,并且可以使用-iL参数将文件作为输入提供。我不确定如何使用python nmap复制相同的功能。 Python nmap文档并未涵盖所有示例。因此需要帮助。

2 个答案:

答案 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