0

我正在尝试以编程方式查找 Infiniband 接口的 inet 地址,该接口的名称不知道先验

我在 Linux 上,我想避免解析ifconfig (8)输出。我已经阅读了关于这个答案的第二条评论,它建议用来getifaddrs()检索接口,但是我不能选择 Infiniband 一个。

非常感谢任何帮助。

4

2 回答 2

2

getifaddrs()为每个接口返回一个类型条目AF_PACKET,其中包含硬件地址详细信息,如本答案中所述。特别是,iface->ifa_addr保存 a struct sockaddr_ll,并且该sll_hatype结构的成员保存硬件地址类型。因此,要确定哪些接口是 IPoIB,您只需检查哪些接口具有硬件类型ARPHRD_INFINIBAND

于 2011-11-25T17:08:30.527 回答
0

/proc/net/您可以尝试在like /proc/net/if_inet6&下解析一些文件/proc/net/devifconfig你可以通过strace-ing来了解它的作用。

于 2011-11-25T10:36:37.937 回答