Извините, я не уверен, что ваш вопрос касается флага ETH_P_ALL
или ваш анализатор просто не работает.
Я бы рекомендовал использовать ETH_P_ALL
и декодировать заголовки самостоятельно.
Если ваши снифферы не работают, убедитесь, что у вас включен беспорядочный режим? Из командной строки вы можете использовать ifconfig eth0 promisc
, предполагая, что ваше сетевое устройство eth0
. Или вы можете установить флаг IFF_PROMISC
на вашем устройстве, используя ioctl
.
Все вышесказанное, если у вас нет веских причин не делать этого, вероятно, вам стоит не изобретать велосипед и просто использовать libpcap .