строка grep из файла pcap

Я пытаюсь выяснить правильный синтаксис команды. У меня есть файл pcap, и я хочу использовать grep и grep только для извлечения всех uniq ip-адресов без файла

Итак, предположим, что файл называется capture.pcap и находится в моей домашней папке что мне написать?

Я предполагаю, что регулярное выражение может быть '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' и что также должны быть включены sort и uniq, но кажется, что pcap плохо отвечает grep, например, используя обычный синтаксис grep файл word не работает, если я запускаю: grep 239 ./capture.pcap я получаю повтор Binary file ./capture/pcap matches

4
задан 25 April 2014 в 17:23

3 ответа

Попробуйте добавить опции -a или --binary-file=text

grep -aE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' file.pcap
или
grep --binary-file=text -E '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' file.pcap


Это работает для случайного файла pcap, который я скачано с wiki.wireshark.org т.е.

$ grep -E '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' NTLM-wenchao.pcap
Binary file NTLM-wenchao.pcap matches

но

$ grep -aE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' NTLM-wenchao.pcap
Host: 192.168.0.55
Host: 192.168.0.55
Host: 192.168.0.55
Location: http://192.168.0.55/default.aspx
MicrosoftSharePointTeamServices: 12.0.0.6421
<body><h1>Object Moved</h1>This document may be found <a HREF="http://192.168.0."_?"_Ea@yÀ¨[À¨ÃPþµû%RÑ_Pü>ÕGET /default.aspx HTTP/1.1
Host: 192.168.0.55

и т. Д.

Имейте в виду предупреждение (со страницы руководства man grep), что

If TYPE is text, grep processes a binary file as if  it
were  text;  this is equivalent to the -a option.  Warning: grep
--binary-files=text might output binary garbage, which can  have
nasty  side  effects  if  the  output  is  a terminal and if the
terminal driver interprets some of it as commands.


Обратите внимание, что хотя вы можете использовать регулярное выражение \d (для d igit), поддерживается только grep в режиме PCRE (т. Е. С переключателем -P).

0
ответ дан 25 April 2014 в 17:23

grep работает с текстом, файл .pcap представляет собой двоичный файл, что означает, что с использованием только grep вы не можете делать то, что хотите. Формат файла .pcap С помощью с использованием только grep вы можете найти только те IP-адреса в файле .pcap, которые находятся в разделе пакетных данных. (например, файл захвата содержит пакеты для загрузки веб-страницы, где веб-страница содержит информацию об IP-адресах). Короче говоря, с использованием только grep вы не можете этого сделать.

Но почему вы должны использовать только grep? Это какая-то домашняя работа? (Я ответил на очень похожий вопрос 3 дня назад.

0
ответ дан 25 April 2014 в 17:23

Почему бы просто не использовать команду strings с grep ?

например:

ваш файл pcap: abc.pcap

strings abc.pcap | grep "Your Search String Goes Here" 
0
ответ дан 10 October 2020 в 11:03

Другие вопросы по тегам:

Похожие вопросы: