Linux -OpenWrt- (Unwired One) ошибка сканирования интерфейса python wlan

То, что я пытаюсь достичь, я хочу, чтобы мое приложение для Android получило список всех доступных соединений wlan в пределах диапазона устройства с wlan (в этот момент устройство является точкой доступа). Затем я хочу сообщить этому устройству, к какой сети подключаться. Все идет нормально.

Я пытаюсь получить доступ к модулю wlan на моем устройстве openwert через python. Я использую этот [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.

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


person rimes    schedule 28.05.2016    source источник


Ответы (1)


Как информация, я решил свою проблему, изменив модуль, который я использовал. Теперь я использую [1]. Когда я выполняю этот код

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

Я получаю список со всеми окружающими сетями. Затем мне нужно просто выбрать один из них (по SSID) и подключиться

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

person rimes    schedule 03.06.2016