2016-02-19 1 views

Répondre

1

.show() Il suffit d'imprimer sur stdout. Vous devez remplacer sys.stdout par un objet pouvant contenir des chaînes écrites.

Par exemple, dans l'exemple suivant, io.BytesIO est utilisé pour capturer la chaîne écrite:

>>> import sys 
>>> from io import BytesIO 
>>> from scapy.all import Ether, IP, ICMP, Net 
>>> packets = Ether()/IP(dst=Net("google.com/30"))/ICMP() 
>>> old_stdout, sys.stdout = sys.stdout, BytesIO() 
>>> try: 
...  packets.show() 
...  output = sys.stdout.getvalue() # retrieve written string 
... finally: 
...  sys.stdout = old_stdout # Restore sys.stdout 
... 
>>> output[:10] 
'###[ Ether' 
+0

Très bien, merci. Une question restante - Cela fonctionnera-t-il sur Windows? Cela pourrait être pertinent plus tard. – vicco

+1

@vicco, je n'ai pas testé sur Windows, mais je suis sûr que cela fonctionnera sur Windows. – falsetru