我想要实现的目标是,我希望我的 android 应用程序能够获取具有 wlan 的设备范围内所有可用 wlan 连接的列表(此时设备是接入点)。然后我想告诉该设备连接到哪个网络。到目前为止,一切都很好。
我正在尝试通过 python 访问我的 openwert 设备上的 wlan 模块。我正在使用这个 [1] python 模块。当我执行以下示例代码时
python iwlist.py wlan0 scanning
我得到了错误
Interface does not support scanning
然后我开始挖掘代码内部,真正的错误信息是这个:
Argument list too long
并且此错误来自模块(来自文件 iwlibs.py)。它来自的确切代码片段(Iwrange 类,update()):
buff, s = iwstruct.pack_wrq(640)
print "Now comes the error"
status, result = iwstruct.iw_get_ext(self.ifname,
pythonwifi.flags.SIOCGIWRANGE,
data=s)
我不知道它是否有任何帮助,但我也检查了 buff 变量,它只是说 0x00 (我想应该还有一些其他的东西,因为它表示内存中的某个地址,但当然我也可能是错的并且缓冲区只是在那里初始化)。
所以,我不确定问题是什么,在我看来,也许是储备空间(或缓冲区?)对于返回的东西来说太小了。有谁知道我还可以尝试什么才能使它正常工作?
还有一件事,我还下载了 wireless_tools,现在我可以使用 iwlist。我还可以扫描并获取所有周围 wlan 网络的列表。所以看起来硬件工作正常,我只是没有用 python 正确访问它