GNU/Linux >> Znalost Linux >  >> Linux

Získejte IPv6 adresy v linuxu pomocí ioctl

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 getifaddrs pokud 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 SIOCGIFCONF který ve skutečnosti vrací adresy IPv4 a IPv6 (protože mají sa_len pole v struct sockaddr mohou to skutečně podporovat).

Linux
  1. Jak získat počet CPU v Linuxu pomocí C?

  2. Získejte delty myši pomocí Pythonu! (v Linuxu)

  3. Existuje způsob, jak získat UID uživatele na počítači se systémem Linux pomocí javy?

  1. Získat adresy místního síťového rozhraní pouze pomocí proc?

  2. Jak získat hlas v surovém formátu pomocí mikrofonu v linuxu

  3. Správný způsob, jak získat skupiny uživatelů v linuxu pomocí C

  1. Ladění Linuxu pomocí ProcDump

  2. Jak blokovat místní podvržené adresy pomocí firewallu Linux

  3. Získejte masku podsítě v Linuxu pomocí bash