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

2024-06-16 14:12:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我想要实现的是,我希望我的android应用程序能够获得一个包含有wlan的设备范围内的所有可用wlan连接的列表(此时该设备是一个接入点)。然后我要告诉那个设备要连接到哪个网络。到现在为止,一直都还不错。在

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

python iwlist.py wlan0 scanning

我知道错误了

^{2}$

然后我开始挖掘代码的内部,真正的错误信息是:

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正确地访问它

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


Tags: 模块代码py网络pypi应用程序列表错误
1条回答
网友
1楼 · 发布于 2024-06-16 14:12:05

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

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

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

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

相关问题 更多 >