2016-03-28 7 views
0

Ich versuche, eine nslookup mit einer Liste von IP-Adressen zu tun. Ich mache die nslookup auf einem Windows 7-Rechner. Der Fehler, den ich bekomme, ist, dass, wenn ich die nslookup laufen lasse, ich die Variable result als eine Null jedes Mal zurückbekomme. Wie erhalte ichGet nslookup Ergebnisse in Windows 7 Cmd Eingabeaufforderung

Server: server.address.com 
    Address: 10.45.66.77 

    Server: server.address.com 
    Address: 108.36.85.35 

als mein Ergebnis anstelle von 0?

#!/usr/bin/env python 

#purpose of script: To conduct an nslookup on a list of IP addresses 

import os, csv 

#get list of IP's from file 
inFile='filelocation/Book1.txt' 
ipList = [] 
with open(inFile, 'rb') as fi: 
    for line in fi: 
     line = line.replace(',', '')#remove commas and \n from list 
     line = line.replace('\r', '') 
     line = line.replace('\n', '') 
     ipList.append(line)# create list of IP addresses to lookup 

#output results 
outFile='filelocation/outFile.txt' 
fo = open(outFile, 'w') 
for e in ipList: 
    result = str(os.system('nslookup ' + e))#send nsLookup command to cmd prompt. Result = 0 everytime 
    fo.write(result) 

Antwort

2

os.system gibt die Ausgabe des Befehls, den Sie ausführen, nicht zurück; Es druckt es stattdessen.

Um einen Befehl ausführen und seine Ausgabe erhalten, verwenden os.popen(...).read() statt:

result = os.popen('nslookup ' + e).read()