标签: hardware aix c network-interface
我想使用AIX在ioctl上获取网络接口的硬件地址。 就像在Linux中一样,我们通过:
AIX
ioctl
ioctl(sockFd, SIOCGIFADDR, ifr_p);
我在SIOCGIFADDR的{{1}}找不到/usr/include/sys/ioctl.h标记来获取硬件地址信息。
SIOCGIFADDR
/usr/include/sys/ioctl.h
有没有办法从AIX获取?或系统中的任何文件,我可以从中获取此信息,如在linux中,此信息存储在' / sys / class / net /'
答案 0 :(得分:0)
您可以使用grep -w SIOCGIFADDR /usr/include之类的内容轻松检测所需的包含文件。这可能不是推荐的头文件,而是更深的文件,但至少这将是一个线索。
grep -w SIOCGIFADDR /usr/include
通常,BSD样式表示正确的标题是< net / if.h>。我怀疑AIX已经改变,使它无法正常工作。此外,应该有一个方便的包装getifaddrs()。
getifaddrs()
答案 1 :(得分:0)
有很多可用的示例代码,请参阅here或here。基本上,您必须使用getkerninfo参数调用KINFO_NDD,然后从该调用填充的ndd_addr结构的kinfo_ndd字段中读取地址。
getkerninfo
KINFO_NDD
ndd_addr
kinfo_ndd