哪个c / c ++库可用于处理linux的wifi连接?

时间:2011-12-28 21:21:16

标签: c++ c linux wifi

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

  • 关于Wi-Fi接入点的通知已经过去了
  • 提供可用的无线接入点信息
  • 与给定的Wi-Fi接入点连接/断开连接

推荐使用哪种C / C ++ WiFi库来实现这个目标?

3 个答案:

答案 0 :(得分:4)

那将是wireless-tools

答案 1 :(得分:4)

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

虽然无线工具等可以工作 - 甚至直接内核调用,如果必须 - 还有一些问题:

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

您可以为您提到的所有任务发送和接收DBus消息,包括WiFi以及任意其他类型的网络接口。 API已发布here, for version 0.8

对于较新的操作系统,显然有changes in the API, with a migration guide

他们的wiki应该非常有帮助。

我知道Fedora和Ubuntu默认都使用NetworkManager;我相信很多其他系统也会这样做,但是没有详尽无遗的清单。

当然,如果您使用嵌入式系统,自定义发布或其他内容,那么您的里程可能会有所不同。

答案 2 :(得分:1)

我建议直接使用NetworkManager Library

您可以使用低级D-Bus库或libnm-glib库,这样可以简化通信:example add connection glib

有关详细信息,您可以查看命令行客户端 nmcli 的代码。