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 (я думаю, что должно быть что-то еще, bcz указывает на некоторый адрес в памяти, но, конечно, я тоже могу ошибаться и буфер просто инициализируется там).
Итак, я не уверен, в чем проблема, может быть, мне кажется, что пространство резервирования (или буфер?) Слишком мало для возвращаемого материала. Кто-нибудь знает, что еще я мог бы попробовать, чтобы заставить это работать?
И еще одна вещь, я также скачал wireless_tools и теперь я могу использовать iwlist. Я также могу сканировать и получать список всех окружающих сетей WLAN. Таким образом, кажется, что аппаратное обеспечение работает нормально, я просто не получаю к нему доступ с помощью Python
1 ответ
Так же, как информация, я решил свою проблему, изменив модуль, который я использовал. Сейчас я использую [1]. Когда я выполняю этот код
from wifi import Cell, Scheme
print "%s" %(Cell.all('wlan0'))
Я получаю список со всеми окружающими сетями. Затем мне нужно просто выбрать один из них (по SSID) и установить соединение