【问题标题】:Enumerate all network interfaces with IPs on FreeBSD在 FreeBSD 上使用 IP 枚举所有网络接口
【发布时间】:2025-12-10 11:40:01
【问题描述】:

我的应用程序需要列出机器上的所有网络接口及其 IP、IPv4 和 IPv6。

我可以使用 ioctl(SIOCGIFCONF) 获取所有带有 IPv4 IP 的接口,但我也需要 IPv6 IP。

在 Linux 上,这些可以从 /proc/net/if_inet6 获得,但我在 FreeBSD 上从哪里获得?

【问题讨论】:

  • 问题是 FreeBSD 不像 Solaris 那样导出SIOCLGIFCONF,你不能在 IPv6 套接字上使用SIOCGIFCONF

标签: network-programming ipv6 freebsd ioctl


【解决方案1】:

getifaddrs(3) 提供了获取网络地址和接口名称的可移植方式。

【讨论】: