加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

如何在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显示以下内容:

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作为起点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读