我正在通过 netlink 套接字获取有关系统网络设备的信息。
我正在解析 ifinfomsg
结构中定义的三种消息类型 RTM_NEWLINK
、RTM_DELLINK
、RTM_GETLINK
。
struct ifinfomsg {
unsigned char ifi_family; /* AF_UNSPEC */
unsigned short ifi_type; /* Device type */
int ifi_index; /* Interface index */
unsigned int ifi_flags; /* Device flags */
unsigned int ifi_change; /* change mask */
};
定义来自这里http://www.kernel.org/doc/man-pages/online/pages/man7/rtnetlink.7.html
但是设备类型字段ifi_type
没有描述,我在哪里可以找到描述可能值的常量?
连这里都没有描述 http://www.foxprofr.com/rfc/RFC3549-LINUX-NETLINK-AS-AN-IP-SERVICES-PROTOCOL/3549.aspx
现在我知道 1
是以太网,772
是环回,但我想知道所有可能的值。
可能答案很明显,但谷歌不想告诉我任何有用的信息。
最佳答案
查看/usr/include/net/if_arp.h
,您会发现其中的常量为ARPHRD_*
。如果你想让你的生活更轻松一些,请查看 libnl 如果您还没有使用它。
关于c++ - 从哪里获取设备类型常量描述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14702363/