Salut à tous,
Je suis confronté à un soucis un peu gênant.
J'utilise tshark (le wireshark en lignes de commandes), afin de lire des paquets sur mon interface eth0 et les afficher dans ma console.
Cela fonctionne très bien et en temps réel avec la commande suivante :Par contre, je dois effectuer une mise en forme du paquet, car la il arrive brut. J'envoie donc le résultat de tshark dans un pipe vers sed avec la commande suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part tshark -i $1 -R "text && data-text-lines && imf" -T fields -e imf.from -e imf.to -e imf.subject -e textCela fonctionne bien, mais m'engendre un problème désagréable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part tshark -i $1 -R "text && data-text-lines && imf" -T fields -e imf.from -e imf.to -e imf.subject -e text | sed -f args.sed
En effet, alors qu'un paquet est capturé par tshark, il n'est pas affiché tout de suite (donc pas encore traité par sed je suppose). Il faut que tshark attende un deuxième paquet sur mon interface pour m'afficher le premier.
Cela est certainement du au pipe, car si je fais l'expérience de remettre un 2ème pipe derrière, et bien il faut attendre de capter 3 paquets pour lire le 1er sur ma console.
Je pense que lorsqu'un paquet est capturé, il doit être bloqué dans le pipe dans une sorte de buffer. Ma question est simple : comment garder ma lecture et mettre en forme mes paquets en temps-réel ?
Merci!
Partager