Wie Sie die IP-Adresse für Schnittstellen in C mithilfe von IPv6 kennen

Angenommen, ich möchte eine Liste aller IP-Adressen auf meinem Linux-Computer nach ihren Schnittstellennamen erstellen, wobei beide @ verwendet werde IPv6 und IPv4.

Der beste Rat, den ich finden konnte, ist, @ zu verwendgetifaddrs () das sollte IPv6 unterstützen, ähnlich wie ein Beitrag vonHie. Getifaddrs () verwendet jedoch struct ifaddrs, das struct sockaddr verwendet, das mit IPv6 nicht kompatibel ist. Stattdessen sollte es auch ein Zeiger auf eine Union mit struct in6_addr sein.

Wie wird das gehandhabt? Wie unterstützt getifaddrs () IPv6? Ist die Dokumentation veraltet?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage