Domanda

Sto usando NMAP in Python e sto cercando di eseguire la scansione della rete utilizzando un file di testo.Tutte le gamme di scansione sono in un file di testo, come SO:

192.168.1.1-100 192.168.1.120-200. ...

Però, diciamo se la scansione non ha trovato l'host 192.168.1.3, perché è stato offline.Il programma si bloccherà.C'è un modo in cui posso aggirare questo incidente?Posso usare qualcosa come provare / cattura?

Grazie, Jay


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

Questo è il campione del codice

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

Questo è l'errore

È stato utile?

Soluzione

nmap prende due argomenti per l'esclusione.--exclude prende il nome host e --excludefile accetta un file contenente il nome di host che devono essere esclusi.Usa uno di questi come bisogno. Per ulteriori informazioni sul bersaglio di impostazione, vedere il uomo pagina.

Ecco il mio risultato del test -

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

Puoi usare il try-catch -

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

Poiché non si scaricano i server, è possibile eseguire il ping del server prima di procedere alla scansione NMAP.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top