Я новичок в Ubuntu.
У меня есть это регулярное выражение IP '\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}\b'
У меня есть сетевой файл pcap, я хочу использовать это регулярное выражение и grep -e, чтобы найти все IP-адреса в файле.
Я пытался: egrep '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}' -f Ncapture.pcap
Как использовать команду grep для поиска IP-адреса в сетевом файле pcap?
Ваша команда egrep
работает для меня, чтобы заставить grep -e
работать только без управляющих символов, и чтобы он печатал только IP-адреса, используйте опцию -o
для grep:
tcpdump -nr Ncapture.pcap | grep -oe '\(\(25[0-5]\|2[0-4][0-9]\|[01]\?[0-9][0-9]\?\)\(\.\|$\)\)\{4\}'
Но, как я вижу, это будет печатать точку в конце IP, если вам это не нравится, то вы должны добавить последний октет отдельно, то есть:
tcpdump -nr Ncapture.pcap | grep -oe '\(\(25[0-5]\|2[0-4][0-9]\|[01]\?[0-9][0-9]\?\)\(\.\|$\)\)\{3\}\(25[0-5]\|2[0-4][0-9]\|[01]\?[0-9][0-9]\?\)'
К сделать так, чтобы IP-адрес печатался только один раз:
tcpdump -nr Ncapture.pcap | grep -oe '\(\(25[0-5]\|2[0-4][0-9]\|[01]\?[0-9][0-9]\?\)\(\.\|$\)\)\{3\}\(25[0-5]\|2[0-4][0-9]\|[01]\?[0-9][0-9]\?\)' | sort | uniq