Linux -OpenWrt- (Unwired One) python wlan接口扫描错误

Linux -OpenWrt- (Unwired One) python wlan interface scan error

我想要实现的目标是,我希望我的 android 应用程序能够获取具有 wlan 的设备范围内所有可用 wlan 连接的列表(此时该设备是一个接入点).然后我想告诉那个设备连接到哪个网络。到目前为止一切顺利。

我正在尝试通过 python 访问我的 openwert 设备上的 wlan 模块。我正在使用这个 [1] python 模块。当我执行以下示例代码时

python iwlist.py wlan0 scanning

我收到错误

Interface does not support scanning

然后我开始深入代码内部,真正的错误信息是这个:

Argument list too long

并且此错误来自模块(来自文件 iwlibs.py)。它来自的确切代码片段 (class 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(我想应该还有其他一些东西 bcz 它表示内存中的某个地址,但是当然我也可能是错的,缓冲区刚刚在那里被初始化)。

所以,我不确定问题出在哪里,在我看来,可能是预留器 space(或缓冲区?)对于要返回的东西来说太小了。 有谁知道我还可以尝试什么来让它工作?

还有一件事,我还下载了 wireless_tools,现在我可以使用 iwlist 了。我还可以扫描并获取所有周围 wlan 网络的列表。所以看起来硬件工作正常,我只是无法使用 python

正确访问它

[1] https://pypi.python.org/pypi/python-wifi/0.6.1

作为一个信息,我通过更改我一直使用的模块解决了我的问题。现在我正在使用 [1]。当我执行这段代码时

from wifi import Cell, Scheme
print "%s" %(Cell.all('wlan0'))

我得到一个包含所有周围网络的列表。然后我只需选择其中之一(通过 SSID)并建立连接

[1]https://wifi.readthedocs.io/en/latest/