У меня есть программа, которая устанавливает сетевой интерфейс в случайный режим, создает сокет, который принимает все входящие пакеты, а затем входит в цикл для чтения пакета в буфер, устанавливает указатель на местоположение заголовка IP и затем выведите значение его поля ip_len. Проблема в том, что напечатанные значения невероятно высоки. Read () возвращает что-то вроде 84, и программа напечатает 21504. Я проверил размеры пакетов в Wireshark, и общий размер каждого пакета не очень далек от возвращаемого значения read (). Как я могу заставить ip_len давать мне вменяемые данные?