Función para recuperar la dirección de destino del encabezado de un paquete en Windows XP

Estoy interesado en recuperar la dirección de destino a la que se envía un paquete entrante. Por ejemplo, en Linux puedes utilizarrecvmsg:

res = recvmsg(socket, &msghdr, 0);
get_cmsg = CMSG_FIRSTHDR(msghdr);   
struct in_pktinfo *get_pktinfo = (struct in_pktinfo *)CMSG_DATA(get_cmsg);
printf(" - Header destination address (get_pktinfo.ipi_addr)=%s\n", inet_ntoa(pktinfo.ipi_addr));

Se han omitido pasos para guardar muchas líneas.

La clave aquí es querecvmsg Es fácil de usar. Se implementan funciones similares para Windows XP comorecvfrom pero Windows no parece implementar elrecvmsg función.

Existen funciones con nombres similares, como elWSARevcMsg función, pero de acuerdo con la documentación vinculada solo se incluye en Windows Vista y superior.

¿Hay alguna manera de obtener la dirección de destino del encabezado de un paquete en Windows XP?

Sé que usar XP es malo y antiguo, desafortunadamente estamos tratando de corregir un error en un producto heredado, por lo que en este momento no podemos simplemente actualizar.

Respuestas a la pregunta(1)

Su respuesta a la pregunta