用于 Linux 的 Wireless API in C 或 Java

2022-09-04 22:14:05

我和我的团队正在一个基于无人机Parrot API的项目中工作。我们正在尝试找到一个api来编写一个小程序,该程序可以扫描无线网络并选择无人机ESSID。我们的主要语言是C,但Java也受到赞赏。

我试图寻找是否存在iwlist / iwconfig命令的任何API,但我没有找到任何东西。有人可以帮我吗?任何示例(代码示例)也将不胜感激。

谢谢


答案 1

对于较新的内核,用于管理无线网卡的框架称为nl80211。它是基于netlink的,所以你可以使用libnl发出命令并解析答案。更多信息:

https://wireless.wiki.kernel.org/en/developers/documentation/nl80211

目前,iw是利用nl80211的命令行实用程序,因此您可以列出可用的硬件,扫描等:

https://wireless.wiki.kernel.org/en/users/documentation/iw

它的源代码很容易在你自己的项目中研究和重用,只需查看他们的git存储库。


答案 2

没有API,但你可以尝试:从java应用程序中执行iwconfig

您也可以尝试 http://kosmosisland.com/island/david/kosmos-island-wireless.php 。他们有一个Java小程序(带源代码),用于监视无线链接。你可以看到他们是如何做到的。

古斯塔沃


推荐