Obtenga direcciones IPv6 en Linux usando ioctl
Esto probablemente no funcionará.
Desde man 7 netdevice
:
SIOCGIFCONF
Devuelve una lista de direcciones de interfaz (capa de transporte). Actualmente, esto significa solo direcciones de AF_INET (IPv4) para compatibilidad.
[...]
NOTAS
[...]
Las direcciones IP IPv6 locales se pueden encontrar a través de /proc/net o viartnetlink(7).
Sí, ese ioctl es heredado y no devolverá IPv6. Cada plataforma tiene una forma diferente de obtener las IPv6:
- Linux, usa NETLINK si estás loco, usa
getifaddrs
si tiene una glibc vagamente reciente, de lo contrario, lea/proc/net/if_inet6
(por ejemplo, en Android). - Darwin o FreeBSD:usa
getifaddrs
. - Solaris, usa
SIOCGLIFCONF
. - AIX, use
SIOCGIFCONF
que en realidad devuelve direcciones IPv4 e IPv6 (porque tienen unsa_len
campo enstruct sockaddr
en realidad pueden apoyar eso).