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
getifaddrs
si 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
SIOCGIFCONF
qui renvoie en fait les adresses IPv4 et IPv6 (car elles ont unsa_len
champ enstruct sockaddr
ils peuvent réellement prendre en charge cela).