извлечь полезную нагрузку из вывода tcpflow - PullRequest
1 голос
/ 19 мая 2010

Tcpflow выводит кучу файлов, многие из которых являются HTTP-ответами от веб-сервера. Внутри они содержат заголовки HTTP, включая Content-type: и другие важные. Я пытаюсь написать сценарий, который может извлекать только данные полезной нагрузки (например, image / jpeg; text / html; и др.) И сохранять их в файл [необязательно: с соответствующим именем и расширением файла].

Символами EOL являются \ r \ n (CRLF), и поэтому их сложно использовать в дистрибутивах GNU (по моему опыту).

Я пробовал что-то вроде:

sed /HTTP/,/^$/d  

Удалить весь текст от начала HTTP (вкл.) До конца \ r \ n \ r \ n (вкл.), Но я не нашел удачи. Я ищу помощь от любого с хорошим опытом в sed и / или awk. У меня нет опыта работы с Perl, пожалуйста, я бы предпочел использовать обычные утилиты командной строки GNU для этого

Найдите пример выходного файла tcpflow здесь. (плохая ссылка)

Спасибо
Фелипе

1 Ответ

2 голосов
/ 20 мая 2010

В этой статье рекомендуется использовать foremost на выходе из tcpflow для извлечения изображений. Он доступен по этой ссылке и в репозиториях (по крайней мере) Debian, Fedora и Ubuntu.

Я попробовал его на примере файла, на который вы ссылались, и, похоже, он работал нормально.

foremost -i tcpflow.out

Он создал каталог с именем «output» с подкаталогами «gif» и «jpeg» с файлами в каждом. Имена файлов не совпадают с именами файлов в заголовках.

Чтобы изменить окончания строк в ваших файлах, выполните:

dos2unix filename

или в трубе:

dos2unix < filename | nextcommand

Другие интересные ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...