Как пропустить IP при использовании NMAP в Python?
-
12-12-2019 - |
Вопрос
Я использую NMAP в Python и пытаясь отсканировать сеть с помощью текстового файла.Все диапазоны сканирования в текстовом файле, как так:
192.168.1.1-100 192.168.1.120-200 ...
Хотя, давайте скажем, если сканирование не нашел хост 192.168.1.3, потому что он был в автономном режиме.Программа потерпела крах.Есть ли способ, которым я могу обойти это сбой?Могу ли я использовать что-то вроде try / catch?
Спасибо, Джей
counter = 0
with open('range.txt') as rangefile:
content = rangefile.readlines()
while counter < len(content):
nm = nmap.PortScanner()
#define the nmap scan here
nm.scan(content[counter], '517', '-sU -sT')
.
Это образец кода
File "c:\...\nmapscan.py", line 63, in <module> therehost = Host.objects.get(ipv4_address=hosts) va.assessment.models.DoesNotExist: Host matching query does not exist. Lookup parameters were {'ipv4_address': u'134.250.16.103'}
.
Это ошибка
Решение
nmap
принимает два аргумента для исключения.--exclude
принимает имя хоста и --excludefile
принимает файл, содержащий имя хостов, которые необходимо исключить.Используйте один из них как ваша потребность.
Для получения дополнительной информации о настройке цели см. В разделе man .
Вот мой результат теста -
Python 3.2.3 (default, May 3 2012, 15:54:42)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import nmap
>>> nm=nmap.PortScanner()
>>> nm.scan('134.250.16.103','517', '-sU -sT')
{'nmap': {'scanstats': {'uphosts': '0', 'timestr': 'Sat Jul 28 12:54:27 2012', 'downhosts': '1', 'totalhosts': '1', 'elapsed': '3.06'}, 'scaninfo': {'udp': {'services': '517', 'method': 'udp'}, 'tcp': {'services': '517', 'method': 'connect'}}, 'command_line': 'nmap -oX - -p 517 -sU -sT 134.250.16.103'}, 'scan': {'134.250.16.103': {'status': {'state': 'down', 'reason': 'no-response'}, 'hostname': ''}}}
>>>
.
Вы можете использовать Try-Catch -
try:
nm.scan(content[counter], '517', '-sU -sT')
except:
#handle exception...
.
По мере того, как вы не находитесь, какие серверы не упадут, вы можете пинговать сервер, прежде чем перейти к сканированию NMAP.