在AIX上使用ioctl的网络接口的硬件地址

时间:2014-08-28 06:37:36

标签: hardware aix c network-interface

我想使用AIXioctl上获取网络接口的硬件地址。 就像在Linux中一样,我们通过:

ioctl(sockFd, SIOCGIFADDR, ifr_p);

我在SIOCGIFADDR的{​​{1}}找不到/usr/include/sys/ioctl.h标记来获取硬件地址信息。

有没有办法从AIX获取?或系统中的任何文件,我可以从中获取此信息,如在linux中,此信息存储在' / sys / class / net /'

2 个答案:

答案 0 :(得分:0)

您可以使用grep -w SIOCGIFADDR /usr/include之类的内容轻松检测所需的包含文件。这可能不是推荐的头文件,而是更深的文件,但至少这将是一个线索。

通常,BSD样式表示正确的标题是< net / if.h>。我怀疑AIX已经改变,使它无法正常工作。此外,应该有一个方便的包装getifaddrs()

答案 1 :(得分:0)

有很多可用的示例代码,请参阅herehere。基本上,您必须使用getkerninfo参数调用KINFO_NDD,然后从该调用填充的ndd_addr结构的kinfo_ndd字段中读取地址。