2017-08-05 7 views
0

Mein Code zu erhalten versuchen sollte aufzuspüren ein Paket mit scapy schnupperte und prüfen, welches Programm gesendet/das Paket empfangen hat, setzen Sie „Unbekannt“, wenn das Programm nichtPython - Fehler bei der Ausgabe von check_output

gefunden

Code:

source_software = check_output(["netstat", "-nb"], shell = True).decode() 
source_software = source_software[source_software.find(str(packet_dictionary["Port"])) : ] 
source_software = source_software[source_software.find("\n") + 2 : source_software.find("]")] 
if "Can not" not in source_software and len(source_software) > MINIMUM_LENGTH: 
    packet_dictionary["Software"] = source_software 
else: 
    packet_dictionary["Software"] = "Unknown" 

Fehler:

File "Client.py", line 44, in add_to_list 
source_software = check_output(["netstat", "-nb"], shell = True).decode() 
File "C:\Python36\lib\subprocess.py", line 336, in check_output 
**kwargs).stdout 
File "C:\Python36\lib\subprocess.py", line 418, in run 
output=stdout, stderr=stderr) 
subprocess.CalledProcessError: Command '['netstat', '-nb']' returned non-zero 
exit status 1. 

Antwort

0

es könnte sein, Python keine Berechtigung netstat oder ein anderes zu laufen, aber man kann es debuggen mit dem folgenden Befehl

source_software = check_output("netstat -nb; exit 0", stderr=subprocess.STDOUT, shell=True).decode() 
print source_software 
+0

Ich habe es vergessen, codierte ich dieses Stück Code vor ein paar Wochen und bin heute wieder reingekommen, habe vergessen, dass ich es als Administrator laufen lassen muss – NeXoR

0

Wie Sie sehen können in der unteren Zeile der Ausnahme ist das Problem, dass:

Command '['netstat', '-nb']' returned non-zero exit status 1. 

... was bedeutet, dass es nicht um check_output selbst ist, sondern es ist nur eine Rückmeldung, dass der Befehl Du es mit versucht zu laufen, failed und mit Code 1 beendet.

Sie können den Befehl in der Shell ausführen und überprüfen, ob es wie erwartet funktioniert.

Verwandte Themen