Я смотрел самый простой учебник по созданию крошечного сетевого сниффера и found this one. Я последовал его, но метод рекомендуется нюхать пакетов:Sniffing весь сетевой трафик в C
sock_raw = socket(AF_PACKET , SOCK_RAW , htons(ETH_P_ALL)) ;;
while(1)
{
data_size = recvfrom(sock_raw , buffer , 65536 , 0 , &saddr , &saddr_size);
}
С рациональным:
сокеты если положить в цикле recvfrom принимает все входящие пакеты. Это связано с тем, что он не привязан к конкретному адресу или порту.
Мне показалось, что это будет контролировать только сетевой трафик, поступающий и выходящий из моего компьютера, а не всей локальной сети. Тест-тест подтвердил мою интуицию.
Верно ли это? Может ли этот метод только обнюхивать пакеты, входящие и выходящие из моего ноутбука?
Какой подход следует использовать для обнюхивания всего сетевого трафика (то есть: netsniff-ng, Wireshark)?
Я хочу избежать использования libpcap в этом случае.
Вы не можете отслеживать трафик, который не берется из вашей сетевой карты, или в конечном итоге находится в нем. Никакой существующий инструмент не поможет вам в этом. –