unterdrücken scapy Warnmeldung beim importieren des Moduls
Ich Schreibe ein kleines Skript, sammelt einige Informationen über scapy und gibt dann einige xml-code, das werde ich weitergeben an die xmlrpc-Schnittstelle von metasploit. Ich möchte, dass mein Skript gibt nur xml, und es werden keine zusätzlichen Warnungen etc.
Kann ich unterdrücken die meisten scapy-Ausgabe mit dem hinzufügen der option verbose=0
zu meiner sr1-Befehl. Was ich immer noch vor jedem Ausgang, und ich nehme an, es gibt diese Warnung, wenn ich bin laden der module:
ACHTUNG: Keine route gefunden für IPv6-Ziel :: (keine default-route?)
Kann ich problemlos umleiten, die Ausgabe, indem Sie meinen Skript wie dieses:
./myscript 2> /dev/null
aber ich würde gerne integrieren diese in das Skript ein. Für die, die ich gefunden habe, ein Hinweis, dass man eine NullDevice-Klasse, das nicht alles schreiben, und legen Sie dann sys.stderr
um eine Instanziierung, die NullDevice Klasse.
Diese funktioniert nur leider, nachdem ich bereits die module geladen, also ich habe immer noch die Warnung, und es leitet alle folgenden Nachrichten, die an stderr.
Wie kann ich unterdrücken, dass die Warnmeldung angezeigt wird, auf meinem Bildschirm?
InformationsquelleAutor der Frage user857990 | 2012-11-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie loswerden der Warnungen von scapy durch hinzufügen:
vor Scapy Import. Diese werden alle Meldungen unterdrückt, die haben einen geringeren Grad der Ernsthaftigkeit, als die Fehlermeldungen.
zum Beispiel:
InformationsquelleAutor der Antwort halex
Ich denke, das ist der richtige Weg.
InformationsquelleAutor der Antwort Joel Maatkamp
Ich denke, dass vielleicht die Python ist3 version von scapy druckt eine Nachricht von einem anderen logger oder auf einem hohen Niveau. Hier ist etwas code, den ich verwendet habe, zu unterdrücken Ausgang auf Modul importieren.
InformationsquelleAutor der Antwort mkingston
Mit Python ist3, die Neudefinition sys.stderr zu Keiner warf eine Ausnahme AttributeError: 'NoneType' - Objekt hat kein Attribut 'schreiben'. Stattdessen definieren Sie zu
os.devnull
macht den job:InformationsquelleAutor der Antwort Juuso Ohtonen