Как узнать IP-адрес для интерфейсов в C, использующих IPv6

Предположим, мне нужен список всех IP-адресов на моем компьютере с Linux по именам их интерфейсов, используя обаIPv6 а такжеIPv4.

Лучший совет, который я мог бы найти, это использоватьgetifaddrs () который должен поддерживать IPv6, аналогично посту отВот, Тем не менее, getifaddrs () использует struct ifaddrs, которая использует struct sockaddr, которая несовместима с IPv6. Вместо этого он также должен быть указателем на объединение со структурой in6_addr.

Как это обрабатывается? Как getifaddrs () поддерживает IPv6? Является ли документация устаревшей?

Ответы на вопрос(1)

Ваш ответ на вопрос