Cómo escribir un programa de captura de paquetes en Linux
Utiliza el modo SOCK_RAW para establecer un socket sin formato y recibir paquetes.
El resto es analizar el contenido. . . . Utilice subprocesos múltiples como máximo.
Utilizar los conocimientos más básicos de programación de sockets en Linux, así como la comprensión de los detalles de los protocolos de red. El primero se puede encontrar en cualquier libro sobre programación de sockets y será muy detallado. Debe comprender el segundo.
——————
Por ejemplo, debe incluir los siguientes encabezados:
stdio.h, stdlib.h, unistd.h, sys/ socket.h, sys/types.h, netinet/if_ether.h, netinet/in.h,
Luego usa
socket(PF_PACKET, SOCK_RAW, htons( ETH_P_IP) ), de modo que pueda utilizar este conector para monitorear paquetes Ethernet.
Luego llame a la función recvfrom en un bucle para escuchar los datos recibidos por este socket y luego analizarlos.
Si desea detectar paquetes de las máquinas de otras personas, debe utilizar la suplantación de identidad ARP. . Jaja