Ottieni indirizzi IPv6 in Linux usando ioctl
Questo probabilmente non funzionerà.
Da man 7 netdevice :
SIOCGIFCONF
Restituisce un elenco di indirizzi di interfaccia (livello di trasporto). Ciò significa attualmente solo gli indirizzi di AF_INET (IPv4) per compatibilità.
[...]
NOTE
[...]
Gli indirizzi IP IPv6 locali possono essere trovati tramite /proc/net o viartnetlink(7).
Sì, quell'ioctl è legacy e non restituirà IPv6. Ogni piattaforma ha un modo diverso di ottenere quelli IPv6:
- Linux, usa NETLINK se sei pazzo, usa
getifaddrsse hai una glibc vagamente recente, altrimenti leggi/proc/net/if_inet6(ad esempio su Android). - Darwin o FreeBSD:usa
getifaddrs. - Solaris, usa
SIOCGLIFCONF. - AIX, usa
SIOCGIFCONFche in realtà restituisce gli indirizzi IPv4 e IPv6 (poiché hanno unsa_lencampo instruct sockaddrpossono effettivamente supportarlo).