以编程方式检索infiniband设备的IP地址

时间:2011-11-25 09:20:51

标签: c linux rdma infiniband

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

我在Linux上,我想避免解析ifconfig (8)输出。 我已经阅读了关于this回答的第二条评论,建议使用getifaddrs()来检索接口,但是我无法选择Infiniband。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

您可以尝试解析/proc/net/下的某些文件,例如/proc/net/if_inet6& /proc/net/dev。您可以通过ifconfig了解strace所做的事情。