c++ - 从哪里获取设备类型常量描述?

标签 c++ linux netlink

我正在通过 netlink 套接字获取有关系统网络设备的信息。 我正在解析 ifinfomsg 结构中定义的三种消息类型 RTM_NEWLINKRTM_DELLINKRTM_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/

相关文章:

c - Linux 运营商检测通知

c++ - segmentation 故障的常见原因的明确列表

c++ - 似乎无法忽略 Visual Studio 2010 中的库

regex - 将文本文件转换为单行

linux - Bash:循环直到命令退出状态等于 0

ios - macOS 和 iOS 上的 libnl

c++ - "Socket operation on non-socket"错误由于奇怪的语法

c++ - 了解导入在 C++ 中的工作原理

linux - 在linux上使用jmeter进行性能测试

Docker 镜像无法创建 netlink 句柄