Obtenir des adresses IPv6 sous Linux en utilisant ioctl
Cela ne fonctionnera probablement pas.
A partir du man 7 netdevice :
SIOCGIFCONF
Renvoie une liste d'adresses d'interface (couche transport). Cela signifie actuellement uniquement les adresses de AF_INET (IPv4) pour la compatibilité.
[...]
REMARQUES
[...]
Les adresses IP IPv6 locales peuvent être trouvées via /proc/net ou viaartnetlink(7).
Oui, cet ioctl est hérité et ne renverra pas IPv6. Chaque plate-forme a une manière différente d'obtenir les IPv6 :
- Linux, utilisez NETLINK si vous êtes fou, utilisez
getifaddrssi vous avez une glibc vaguement récente, sinon lisez/proc/net/if_inet6(par exemple sur Android). - Darwin ou FreeBSD :utilisez
getifaddrs. - Solaris, utilisez
SIOCGLIFCONF. - AIX, utilisez
SIOCGIFCONFqui renvoie en fait les adresses IPv4 et IPv6 (car elles ont unsa_lenchamp enstruct sockaddrils peuvent réellement prendre en charge cela).