2017-02-02 2 views
1

J'ai un fichier tcpdump et je voudrais imprimer le nombre de lignes/paquets qui ont été envoyés. J'utilise la commande tcpdump -r, mais certaines sorties semblent être étendues sur deux lignes (voir l'image ci-dessous), même si elles proviennent du même protocole.Sortie tcpdump sur une seule ligne

Ma question est comment puis-je la faire apparaître sur une nouvelle ligne et imprimer le total des lignes?

Je l'ai testé en utilisant l'interface graphique Wireshark et il devrait avoir 3188 lignes, mais je voudrais le faire en utilisant la ligne de commande Linux.

enter image description here

Répondre

0

Si vous avez le contenu de la sortie de tcpdump dans un fichier texte que vous pouvez éviter les changements de ligne en utilisant moins avec le paramètre -S.

De moins manuel:

-S ou --chop-palangres Causes des lignes plus longues que la largeur de l'écran pour être coupés (tronquée) plutôt que enveloppés. C'est-à-dire que la partie d'une longue ligne qui ne tient pas dans la largeur de l'écran n'est pas montrée. La valeur par défaut est pour envelopper les longues lignes; c'est-à-dire afficher le reste sur la ligne suivante.

Lorsqu'il est utilisé avec le paramètre -N, le nombre de lignes sera également affiché.

0

comment puis-je faire apparaître pas sur une nouvelle ligne et imprimer total de lignes

Si vous ne voulez pas de longues lignes à emballer, vous devrez les tronquer. Vous pouvez le faire en utilisant la commande cut. Par exemple:

tshark -r file.pcap | cut -c -80 

Si vous ne voulez compter le nombre de lignes dans la sortie, alors vous pouvez le faire en utilisant la commande wc. Par exemple:

tshark -r file.pcap | wc -l 

Remarque: Que vous tronquer les longues lignes ou non, le décompte du nombre de lignes reste le même. Ce n'est pas parce qu'une longue ligne est enveloppée que le nombre de lignes augmente; ce n'est pas le cas. Donc, à moins que vous ayez vraiment besoin de tronquer les longues lignes, je vous déconseillerais; Sinon, vous allez couper des informations potentiellement utiles sans raison valable.

Cela dit, si vous ne voulez tronquer les longues lignes et si vous voulez aussi être en mesure d'imprimer le nombre total de lignes, cela nécessitera probablement 2 étapes:

  1. redirigent l'tronquée sortie dans un fichier, et
  2. Comptez le nombre de lignes dans le fichier en utilisant wc.

Par exemple:

tshark -r file.pcap | cut -c -80 > file.txt 
wc -l file.txt (or cat file.txt | wc -l) 

Si vous voulez être en mesure de voir immédiatement la sortie ainsi que d'écrire la sortie dans un fichier afin de compter le nombre de lignes, vous pouvez le faire avec la commande tee, par exemple:

tshark -r file.pcap | cut -c -80 | tee file.txt 
wc -l file.txt 
1

en supposant que vous travaillez dans bash ou ksh, exécutez "exportation columns = 1024" avant de lancer tcpdump. Tcpdump conclura que l'affichage est de 1024 caractères de large, ce qui devrait être suffisant pour que chaque paquet soit assis sur une ligne de sortie. Je ne pense pas qu'il y ait de limite pratique à la valeur COLUMNS.