Liest ICMP-Nutzdaten aus einem Recvmsg mit dem MSG_ERRQUEUE-Flag

Ich verwende BSD-Sockets, um ein erweitertes Traceroute-Programm zu erstellen, das keine Root-Rechte (wie tracepath) benötigt. Mit UDP und einem gebundenen Socket rufe ich auf:

recvmsg(socket, header, MSG_ERRQUEUE)

Ich erhalte Informationen über die angebliche ICMP-Benachrichtigung, die ein zuvor gesendetes Paket ausgelöst hat. Wissen Sie, ob es möglich ist, auf die ICMP-Nutzdaten zuzugreifen (dies sollte das zuvor gesendete Paket sein)?

Ich habe aus der recvmsg-Manpage gelesen:

[..] The payload of the original packet that caused the error
is passed as normal data via msg_iovec. [..] 

Aber ich kann dort nichts Nützliches finden, es scheinen nur zufällige Daten zu sein (ich habe Wireshark verwendet, um Daten zu überprüfen).

Antworten auf die Frage(1)

Ihre Antwort auf die Frage