На самом деле, большинство из этих заголовков изначально предназначались для облегчения написания сетевого стека ядра BSD, а не для упрощения декодирования заголовков пакетов в анализаторах; частично они присутствуют для пользовательских программ по историческим причинам.
Я бы предложил получить исходный код для последних версий tcpdump или WinDump и сделать в нем свои собственные копии соответствующих заголовочных файлов; файлы ether.h
, ip.h
, udp.h
и tcp.h
из tcpdump / WinDump взяты из операционных систем BSD, поэтому tcpdump / WinDump не должен зависеть от операционной системы, поставляющей эти заголовки, или от он предоставляет конкретные версии этих заголовков (не все операционные системы, в которых tcpdump / WinDump может запускать исходные версии, которые хорошо работают с tcpdump / WinDump, причем некоторые из них требуют специального взлома для tcpdump, а некоторые другие вообще не предоставляют их - Windows) например, вы их вообще не поставляете, как вы обнаружили).
Вы можете получить источник tcpdump из tcpdump.org , а источник WinDump из winpcap.org (см. «Загрузка исходного кода WinDump 3.9.5»). Исходный файл WinDump находится в ZIP-файле, а не в сжатом tar-файле, поэтому его проще распаковать в Windows, и в нем могут быть окончания строк Windows CR-LF, а не окончания строк UN * X LF, так что вы можете попробовать Версии WinDump.