как исключить хосты из диапазона IP из сканирования внутри скрипта nmap python

был бы признателен за ваш совет, как исключить хосты из сканирования внутри nm.scan(). У меня есть следующий скрипт, который отлично работает, когда я вхожу в диапазон: например, 10.0.0.0/24

import sys
import os
import subprocess
import csv
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(0)
except:
    print("Unexpected error:", sys.exc_info()[0])
    sys.exit(0)

file = raw_input('\nEnter the name of the file where the scan will be saved/add .csv/: ')
ip_range = raw_input('\nEnter the IP range you want to scan/in the following foramt:x.x.x.x/mask: ')
nmap_arguments= raw_input('\nEnter the nmap arguments : ')
nm.scan(hosts=ip_range, arguments= nmap_arguments)
nm.command_line()                   # get command line used for the scan
nm.scaninfo()                       # get nmap scan informations {'tcp': {'services': '22-443', 'method'nect'}}
nm.all_hosts()                      # get all hosts that were scanned


if (len(sys.argv) > 1 and sys.argv[1]):
    save_csv_data(nm.csv(), path=sys.argv[1])
else:
    save_csv_data(nm.csv())

print "Completed!"

но, например, если я хочу просканировать диапазон, но исключить 2 хоста, когда я ввожу: nm.scan(hosts='10.0.0.0/24 --exclude 10.0.0.1, 10.0.0.2, arguments= nmap_arguments) - он исключает только 10.0.0.1, но все еще сканирует 10.0.0.2. Суть в том, как ввести часть IP внутри nmap()


person Ivan Madolev    schedule 18.08.2017    source источник


Ответы (1)


Я понял. Нужно сначала поставить аргументы:

nm.scan(arguments='-sT --open --exclude X.X.X.X,X.X.X.X',hosts='X.X.X.0/24')
person Ivan Madolev    schedule 18.08.2017