Sto cercando di gestire l'output di tcpdump in python.Gestione dell'output di tcpdump in python
Quello che mi serve è eseguire tcpdump (che cattura i pacchetti e mi dà informazioni) e leggere l'output ed elaborarlo.
Il problema è che tcpdump continua a funzionare per sempre e ho bisogno di leggere le informazioni sul pacchetto non appena esce e continua a farlo.
Ho provato a esaminare il sottoprocesso di python e ho provato a chiamare tcpdump usando popen e piping lo stdout ma non sembra funzionare.
Qualsiasi indicazione su come procedere.
import subprocess
def redirect():
tcpdump = subprocess.Popen("sudo tcpdump...", stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
while True:
s = tcpdump.stdout.readline()
# do domething with s
redirect()
Puoi pubblicare il tuo codice finora? Grazie. –
si potrebbe [usare pseudo-tty per forzare l'output con buffer di linea] (http://stackoverflow.com/a/12471855/4279) – jfs