Как предоставить параметр inputfilefile (-iL) в python nmap? - PullRequest
0 голосов
/ 05 марта 2019

В командной строке nmap мы можем предоставить список хостов в файле, а файл можно указать в качестве входных данных с помощью параметра -iL.Я не уверен, как повторить ту же функцию, используя Python Nmap.Документация Python Nmap не охватывает все примеры.Так что требуется помощь в этом.

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Вы можете использовать опцию -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())
0 голосов
/ 05 марта 2019

Я не думаю, что 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 
...