我正在通过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是回送,但是我想知道所有可能的值.
可能答案很明显,但是Google不想告诉我任何有用的信息.
解决方法:
看一下/usr/include/net/if_arp.h,您将在其中找到常数ARPHRD_ *.如果您想让生活更轻松一点,请查看libnl(如果您尚未使用过的话).