Redirección de iptables en C ++ formando paquetes separados

Tengo todo el tráfico del puerto 50 redirigido a 5050 usando

iptables -t nat -A POSTROUTING -p udp --dport 50 -j REDIRECT --to-port 5050

Escucho utilizando un RAW Socket en 5050 y veo paquetes IP de 0.0.0.0:50 a 0.0.0.0:5050. La dirección de destino original obviamente no está presente, ya que parece ser un paquete de redirección separado del puerto 50 al puerto 5050.

Si se suponía que el paquete original debía ir a a.b.c.d: 50, ¿cómo obtengo esa dirección IP? ¿Cómo puedo averiguar la dirección de destino donde se suponía que debía enviarse el mensaje, para poder reenviarlo allí?

Aprecio tu ayuda.

P.S .: No quiero usar libipq, ya que por alguna razón no funcionó y deseo no perder más tiempo para que funcione.

Respuestas a la pregunta(1)

Su respuesta a la pregunta