La manipulation de l'outil tcpdump sortie en python

Im essayant de gérer tcpdump sortie en python.

Ce que j'ai besoin est d'exécuter l'outil tcpdump (qui capture les paquets et me donne des informations) et la lecture de la sortie et de la traiter.

Le problème est que tcpdump continue de fonctionner pour toujours et j'ai besoin de lire le paquet d'info dès qu'il sort et continuer à le faire.

J'ai essayé de regarder dans les sous-processus de python et essayé d'appeler à l'aide de tcpdump popen et de la tuyauterie de la sortie standard (stdout), mais il ne semble pas fonctionner.

Toutes les directions sur la façon de procéder à cet égard.

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()
Vous pouvez poster votre code jusqu'à présent? Merci.
vous pourriez l'utilisation de pseudo-tty pour ligne de force-tampon de sortie

OriginalL'auteur ashish g | 2013-07-28