У меня есть несколько папок с 300-400 файлами в каждой. Файлы представляют собой снимки проводов в формате .pcapng
. Я хотел бы написать сценарий оболочки, который открывает каждый файл и сохраняет его в новую папку в формате wireshark .tcpdump
.
Хорошо, нашел инструмент под названием editcap
. Вам нужно только вызвать editcap i.pcapng o.pcap
в цикл:
# Recursively convert all *.pcapng files to *.pcap
cd /path/to/folders # the path to folder where your folders containing '*.pcapng' files are in
find . -type f -name '*.pcapng' -print0 | while IFS= read -r -d '' f; do editcap -F libpcap "$f" "${f%.pcapng}.pcap"; done
(так как я ленивый, я в основном использовал скрипт Раду, кроме добавления двойных кавычек для $ {f% .pcapng} .pcap)
Вы можете проверить руководство по редактированию колпачка для получения дополнительных опций.
Вот пример:
braiam@bt:~/lab$ ls
something.pcapng
braiam@bt:~/lab$ find . -type f -name '*.pcapng' -print0 | while IFS= read -r -d '' f; do editcap -F libpcap "$f" "${f%.pcapng}.pcap"; done
braiam@bt:~/lab$ file something.pcap something.pcapng
something.pcap: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 65535)
something.pcapng: pcap-ng capture file - version 1.0
braiam@bt:~/lab$
Как вы можете видеть, я преобразовал формат pcapng в формат pcap / tcpdump. Изменение расширения является дополнительным.
Вы также можете использовать tshark:
tshark -F pcap -r {pcapng_file} -w {pcap_file}