哪个c/c++库可以用来处理linux的wifi连接

which c/c++ library can be used for handling wifi connections for linux?

本文关键字:处理 linux 连接 wifi c++ 哪个      更新时间:2023-10-16

我想实现一个WiFi管理程序,该程序应该处理以下内容。

  • wi-fi接入点通知来了还是走了
  • 提供可用wifi接入点信息
  • 连接/断开给定的wi-fi接入点

哪个是推荐的C/c++ WiFi库为Linux实现这一点?

至少在Fedora上,与NetworkManager交互的首选方式是通过DBus。

虽然无线工具和类似的工具可以工作-甚至直接内核调用,如果你必须的话-有几个问题:

  • 你可能需要超级用户权限
  • NetworkManager可能会有恐慌发作,并与你打架,除非你停止它的服务
  • 用户的正常网络控件(例如桌面托盘图标)几乎肯定被配置为使用NetworkManager。

您可以为您提到的所有任务发送和接收DBus消息,用于WiFi以及任意其他类型的网络接口。API在这里发布,版本为0.8。

对于较新的操作系统,API中有明显的变化,并附有迁移指南。

他们的wiki应该很有帮助。

我知道Fedora和Ubuntu默认使用NetworkManager;我相信许多其他系统也有,但没有一个详尽的列表。

当然,如果您使用的是嵌入式系统、自定义发行版或其他东西,那么您的里程可能会有所不同。

就是wireless-tools

我建议直接使用NetworkManager库。

您可以使用底层的D-Bus库或libm -glib库,这使得通信更容易:

更多信息,可以查看命令行客户端nmcli的代码。