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.