如何在C中找到我的分接头适配器的桥接设备名称?
发布时间:2020-12-13 13:51:28 所属栏目:Linux 来源:网络整理
导读:在Linux上,使用C,如何找到我的以太网接口所连接的桥接设备的名称?是否有一系列ioctl()调用我需要进行查找主桥设备? 我的C程序从配置文件中知道我的TAP适配器的设备名称(在这种情况下,点击0).最终,我需要我的TAP适配器响应的IP地址.因为它是桥接的,所以TAP
在Linux上,使用C,如何找到我的以太网接口所连接的桥接设备的名称?是否有一系列ioctl()调用我需要进行查找主桥设备? 我的C程序从配置文件中知道我的TAP适配器的设备名称(在这种情况下,点击0).最终,我需要我的TAP适配器响应的IP地址.因为它是桥接的,所以TAP适配器没有IP地址;它是具有IP地址的桥接设备. 我有一个TAP设备和VETH设备连接在一起. ip a显示以下内容:
注意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作为起点.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |