Získejte adresy IPv6 v linuxu pomocí ioctl
To pravděpodobně nebude fungovat.
Od man 7 netdevice :
SIOCGIFCONF
Vrátí seznam adres rozhraní (přepravní vrstvy). To v současnosti znamená pouze adresy AF_INET (IPv4) rodina kvůli kompatibilitě.
[...]
POZNÁMKY
[...]
Lokální IPv6 adresy lze nalézt pomocí /proc/net nebo viartnetlink(7).
Ano, ten ioctl je starší a nevrátí IPv6. Každá platforma má jiný způsob, jak získat ty IPv6:
- Linux, pokud jste blázen, použijte NETLINK, použijte
getifaddrspokud máte nejasně nedávný glibc, jinak si přečtěte/proc/net/if_inet6(např. na Androidu). - Darwin nebo FreeBSD:použijte
getifaddrs. - Solaris, použijte
SIOCGLIFCONF. - AIX, použijte
SIOCGIFCONFkterý ve skutečnosti vrací adresy IPv4 a IPv6 (protože majísa_lenpole vstruct sockaddrmohou to skutečně podporovat).