Frage

Ich verwende nmap in Python und versuche, das Netzwerk mit einer Textdatei zu scannen.Alle Scanbereiche befinden sich in einer Textdatei, etwa so:

192.168.1.1-100 192.168.1.120-200 ...

Sagen wir jedoch, wenn der Scan den Host 192.168.1.3 nicht gefunden hat, weil er offline war.Das Programm stürzt ab.Gibt es eine Möglichkeit, wie ich diesen Absturz umgehen kann?Kann ich so etwas wie Try / Catch verwenden?

Danke, Eichelhäher


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')

Dies ist das Codebeispiel

  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'}

Das ist der Fehler

War es hilfreich?

Lösung

nmap nimmt zwei Argumente für den Ausschluss. --exclude nimmt Hostnamen an und --excludefile nimmt eine Datei entgegen, die den Namen der Hosts enthält, die ausgeschlossen werden müssen.Verwenden Sie eine davon nach Bedarf.Weitere Informationen zum Festlegen des Ziels finden Sie in der Mensch Seite.

Hier ist mein Testergebnis -

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': ''}}}
>>> 

Sie können try-catch verwenden-

try:
   nm.scan(content[counter], '517', '-sU -sT')
except:
   #handle exception...

Da Sie nicht wissen, welche Server ausgefallen sind, können Sie den Server anpingen, bevor Sie mit dem Nmap-Scan fortfahren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top