Ayúdame a analizar este programa. Si conoces VC++, vamos. Tengo prisa.
ETHDR representa el encabezado de Ethernet y PTCPHDR representa el puntero del encabezado del protocolo TCP.
pkt_data representa los datos del paquete sin procesar recibidos, más el tamaño del encabezado Ethernet, que es el encabezado IP, ya que el encabezado IP sigue al encabezado Ethernet.
h_lenver en el encabezado ip representa la longitud y la versión del encabezado IP. Es un byte. Los 4 bits superiores son la versión y los 4 bits inferiores son la longitud. Dado que la longitud se mantiene en el campo h_lenver y se liberará 2 bits a la derecha (>> 2), es necesario multiplicar el IPLen por 4.
proto==6 indica que la comunicación actual utiliza el protocolo IPV6 y pkt_data+sizeof(ETHDR)+IPLen puede obtener el encabezado tcp. El siguiente paso es obtener el puerto de origen (SrcPort) y el puerto de destino (DesPort) del encabezado TCP. Finalmente, calcule la longitud del contenido real y guárdelo en
nstrlen, y almacene el contenido real. en nstrlen. La dirección de los datos se almacena en pstr.