4

我正在通过 netlink 套接字获取有关系统网络设备的信息。我正在解析结构中定义的三种消息类型RTM_NEWLINK, 。RTM_DELLINKRTM_GETLINKifinfomsg

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是环回,但我想知道所有可能的值。可能答案很明显,但谷歌不想告诉我任何有用的东西。

4

1 回答 1

5

看一看/usr/include/net/if_arp.h,你会发现那里的常数为ARPHRD_*. 如果你想让你的生活更轻松一些,如果你还没有使用它,请查看libnl 。

于 2013-02-05T09:16:01.107 回答