GNU/Linux >> Belajar Linux >  >> Linux

Dapatkan alamat IPv6 di linux menggunakan ioctl

Dapatkan alamat IPv6 di linux menggunakan ioctl

Ini mungkin tidak akan berhasil.

Dari man 7 netdevice :

SIOCGIFCONF

Kembalikan daftar alamat antarmuka (lapisan transportasi). Saat ini berarti hanya alamat AF_INET keluarga (IPv4) untuk kompatibilitas.

[...]

CATATAN

[...]

Alamat IP IPv6 lokal dapat ditemukan melalui /proc/net atau viaartnetlink(7).


Ya, ioctl itu warisan dan tidak akan mengembalikan IPv6. Setiap platform memiliki cara berbeda untuk mendapatkan IPv6:

  • Linux, gunakan NETLINK jika Anda gila, gunakan getifaddrs jika Anda memiliki glibc baru-baru ini, jika tidak, baca /proc/net/if_inet6 (misalnya di Android).
  • Darwin atau FreeBSD:gunakan getifaddrs .
  • Solaris, gunakan SIOCGLIFCONF .
  • AIX, gunakan SIOCGIFCONF yang sebenarnya mengembalikan alamat IPv4 dan IPv6 (karena keduanya memiliki sa_len di struct sockaddr mereka benar-benar dapat mendukung itu).

Linux
  1. Cara mendapatkan total penggunaan cpu di Linux menggunakan C++

  2. Apakah ada cara untuk mendapatkan UID pengguna di mesin Linux menggunakan java?

  3. Cara mendapatkan suara dalam format mentah dengan menggunakan mic di linux

  1. Debug Linux menggunakan ProcDump

  2. Cara yang tepat untuk mendapatkan grup pengguna di linux menggunakan C

  3. Dapatkan nama dan alamat fungsi yang diekspor di linux

  1. Cara memblokir alamat palsu lokal menggunakan firewall Linux

  2. Bagaimana cara mendapatkan jumlah CPU di Linux menggunakan C?

  3. Dapatkan delta mouse menggunakan Python! (di Linux)