如何在C中找到我的分接头适配器的桥接设备名称?

前端之家收集整理的这篇文章主要介绍了如何在C中找到我的分接头适配器的桥接设备名称?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Linux上,使用C,如何找到我的以太网接口所连接的桥接设备的名称?是否有一系列ioctl()调用我需要进行查找主桥设备?

我的C程序从配置文件中知道我的TAP适配器的设备名称(在这种情况下,点击0).最终,我需要我的TAP适配器响应的IP地址.因为它是桥接的,所以TAP适配器没有IP地址;它是具有IP地址的桥接设备.

我有一个TAP设备和VETH设备连接在一起. ip a显示以下内容

1: lo: 

注意tap0和veth0条目:它们的每个桥接主机都是br0(即它们具有桥接主机br0).

当ifr_name为tap0时,当我调用ioctl(SIOCGIFFLAGS),然后调用ioctl(SIOCGIFPFLAGS)时,唯一设置的标志是IFF_UP和IFF_BROADCAST.我不知道从哪里开始.

最佳答案
iputils和朋友在内核和用户空间之间使用rtnetlink API(POSIX套接字API太窄而无法执行所有需要的任务,也没有添加通知的简洁方法).如果您的项目很小,则解析ip实用程序的输出可能更容易,更快捷.这来自为嵌入式Linux项目编写网络配置守护进程的经验. rtnetlink API最初使用起来有点棘手,但是如果你真的想要(许多指针和大小引用需要更正),请对它进行一些研究并使用iputils source作为起点.

猜你在找的Linux相关文章