Проверьте man 7 packet
и man 7 ip
для получения дополнительной информации, но похоже, что вам нужно:
socket(PF_PACKET, SOCK_RAW, <protocol>)
"For compatibility with Linux 2.0, the obsolete socket(PF_INET,
SOCK_RAW, protocol) syntax is still supported to open a
packet(7) socket. This is deprecated and should be replaced by
socket(PF_PACKET, SOCK_RAW, protocol) instead. The main
difference is the new sockaddr_ll address structure for generic
link layer information instead of sockaddr_pkt." - ip(7)
Хотя я не знаю, какие дополнительные измененияможет потребоваться.