Tcpflow производит набор файлов, многие из которых являются ответами HTTP от веб-сервера. Внутри, они содержат HTTP-заголовки, включая Тип контента: и другие важные. Я пытаюсь записать сценарий, который может извлечь просто данные полезной нагрузки (т.е. image/jpeg; текст/HTML; и др.), и сохраняют его в файл [дополнительный: с соответствующим именем и расширением файла].
Символы EOL являются \r\n (CRLF) и таким образом, это мешает использовать в дистрибутивах GNU (в моих событиях).
Я пробовал что-то вроде:
sed /HTTP/,/^$/d
Для удаления всего текста из начало HTTP (incl) в конец \r\n\r\n (incl), но я не нашел удачи. Я ищу справку от любого с хорошим опытом в sed
и/или awk
. У меня есть нулевой опыт с Perl, я предпочел бы использовать общие утилиты командной строки GNU для этого
Найдите образец tcpflow выходным файлом здесь. (неработающий канал)
Спасибо,
Felipe
Эта статья рекомендует выполнить foremost
на выходе из tcpflow
для извлечения изображений. Он доступен по этой ссылке и в репозиториях (по крайней мере) Debian, Fedora и Ubuntu.
Я попробовал его на примере файла, на который вы ссылались, и, похоже, он работает нормально.
foremost -i tcpflow.out
Он создал каталог под названием "output" с подкаталогами "gif" и "jpeg" с файлами в каждом. Однако имена файлов не совпадают с именами файлов в заголовках.
Чтобы изменить окончания строк в файлах, сделайте:
dos2unix filename
или в трубе:
dos2unix < filename | nextcommand
Другие интересные ссылки: