2010-05-19 4 views
1

Tcpflow génère un ensemble de fichiers, dont beaucoup sont des réponses HTTP d'un serveur Web. À l'intérieur, ils contiennent des en-têtes HTTP, y compris Content-type:, et d'autres importants. J'essaye d'écrire un script qui peut extraire seulement les données utiles (c'est-à-dire image/jpeg; text/html; et al.) Et l'enregistrer dans un fichier [optionnel: avec un nom et une extension de fichier appropriés]. Les caractères EOL sont \ r \ n (CRLF), ce qui rend difficile l'utilisation dans les distributions GNU (selon mes expériences).extraire la charge utile de la sortie tcpflow

J'ai essayé quelque chose le long des lignes de:

sed /HTTP/,/^$/d 

Pour supprimer tout le texte à partir du début de HTTP (y compris) jusqu'à la fin de \ r \ n \ r \ n (y compris) mais je n'ai pas trouvé de chance. Je cherche l'aide de n'importe qui avec une bonne expérience dans sed et/ou awk. Je n'ai aucune expérience avec Perl, s'il vous plaît je préfère utiliser les utilitaires de ligne de commande GNU communs pour cela

Trouvez un exemple de fichier de sortie tcpflow ici. (mauvais lien)

Merci,
Felipe

Répondre

2

This article recommande d'exécuter foremost sur la sortie de tcpflow pour extraire les images. Il est disponible sur ce lien et dans les dépôts de (au moins) Debian, Fedora et Ubuntu.

Je l'ai essayé sur le fichier d'exemple que vous avez lié à et il a semblé fonctionner correctement.

foremost -i tcpflow.out 

Il a créé un répertoire appelé « sortie » avec des sous-répertoires appelés « gif » et « jpeg » avec des fichiers dans chacun. Les noms des fichiers ne correspondent pas aux noms de fichier dans les en-têtes, cependant.

Pour modifier les fins de ligne de vos fichiers faire:

dos2unix filename 

ou dans un tuyau:

dos2unix < filename | nextcommand 

Autres liens d'intérêt:

+0

avant tout est excellent! Merci pour les conseils. –

Questions connexes