我正在Ubuntu Linux 12.04环境下开发一个WiFi工具,我需要在不同的频道之间切换WiFi接口。
目前我在Wireshark源代码ws80211_utils.c中的ws80211_set_freq函数中find了解决scheme,但我不知道如何将其实现到我的源代码中,哪些库包含以及如何编译以便testing。
问题是有太多的参数和标志你必须使用。 另外,这是我第一次开发一个netlink wifi工具。
如果有什么好的手册可以从哪里开始,以及如何使用netlink呼叫WiFi,请给我提供链接。
编写假装是TTY的程序
如何模拟video捕捉设备并提供dynamicvideo内容?
我如何将BOOL转换为BOOL?
通过套接字在Linux中发送广播
在Windows 8中,屏幕保护程序如何继续绘制桌面?
非常感谢我提前!
哪里可以得到编译版本的gccxml在Windows上?
以扩展ASCII码显示字符(Ubuntu)
检测哪个USB设备产生input
在当前的Linux版本中, nl80211是与无线子系统“交谈”的正确方式。 请注意,您不能随每个驱动程序和每个操作模式(主设备,客户端,监视器等)任意设置一个通道。只有当相应的接口“关闭”时,某些驱动程序才允许通道更改。 在诸如客户端(“管理”)的模式中,通道不能完全设置,因为它是由接入点定义的。
另外请注意,并非所有的无线设备驱动程序都使用mac80211 / cfg80211。 对于那些不使用它的驱动程序,您必须使用旧的无线扩展API或(更糟糕的)驱动程序特定的专有API。
可悲的是,似乎没有最新的完整的nl80211接口文件。 请纠正我,如果我错了!
查看其他程序源代码的方法似乎是一个合理的方法。 你也可以使用iw命令行工具的源代码 。 iw可以选择设置频道:
$ iw --help Usage: iw [options] command Options: --debug enable netlink debugging --version show version (3.2) Commands: … dev <devname> set channel <channel> [HT20|HT40+|HT40-] …
在iw的phy.c中 ,第91ff行。 您可以在iw wlan0 set channel执行时找到所调用的代码。 但是,这段代码绝对不容易阅读。 它看起来像NL80211_CMD_SET_WIPHY命令结合NL80211_ATTR_WIPHY_FREQ属性是要走的路。
在这个答案中你可以找到使用nl80211的骨架程序。 此外,Aircrack-ng( src/osdep/linux.c ,函数linux_set_channel_nl80211 )的代码可以作为蓝图。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。