Spec-Zone.ru › Hammerspoon

hs.wifi

Проверка сетей Wi-Fi

Подмодули

  • hs.wifi.watcher

Обзор API

  • Функции — API-вызовы, предоставляемые непосредственно расширением
    • associate
    • availableNetworks
    • currentNetwork
    • disassociate
    • interfaceDetails
    • interfaces
    • setPower
  • Конструкторы — API-вызовы, возвращающие объект, как правило, с методами API
    • backgroundScan
  • Методы — API-вызовы, которые можно использовать только с объектом, возвращённым конструктором
    • isDone

Документация API

Функции

associate
Подпись hs.wifi.associate(network, passphrase[, interface]) -> boolean
Тип Функция
Описание

Подключение интерфейса к беспроводной сети

Параметры
  • network - Строка, содержащая SSID сети для подключения
  • passphrase - Строка, содержащая пароль сети
  • interface - Необязательная строка, содержащая имя интерфейса (см. hs.wifi.interfaces). Если не указано, используется стандартное системное устройство WLAN
Возвращаемое значение
  • Булево значение, true, если сеть подключена успешно, false — в случае ошибки
Примечания
  • Корпоративные сети Wi-Fi в настоящее время не поддерживаются. Пожалуйста, создайте проблему на GitHub, если вам нужна поддержка корпоративных сетей
  • Эта функция блокирует Hammerspoon до завершения операции
  • Если доступны несколько точек доступа с одинаковым SSID, будет случайным образом выбрана одна для подключения
Источник extensions/wifi/libwifi.m строка 131
availableNetworks
Подпись hs.wifi.availableNetworks([interface]) -> table
Тип Функция
Описание

Получение списка доступных сетей Wi-Fi

Параметры
  • interface - Необязательное имя интерфейса, как указано в результатах hs.wifi.interfaces. Если не указано, интерфейс по умолчанию - системное устройство WLAN.
Возвращаемое значение
  • Таблица, содержащая имена всех видимых сетей Wi-Fi
Примечания
  • ВНИМАНИЕ: Эта функция заблокирует все выполнение Lua до завершения сканирования. Вероятно, не рекомендуется использовать эту функцию слишком часто, если вообще нужно.
Источник extensions/wifi/libwifi.m строка 189
currentNetwork
Подпись hs.wifi.currentNetwork([interface]) -> string or nil
Тип Функция
Описание

Получение имени текущей сети Wi-Fi

Параметры
  • interface - Необязательное имя интерфейса, как указано в результатах hs.wifi.interfaces. Если не указано, интерфейс по умолчанию - системное устройство WLAN.
Возвращаемое значение
  • Строка, содержащая SSID подключённой сети Wi-Fi или nil, если нет подключения к Wi-Fi
Источник extensions/wifi/libwifi.m строка 300
disassociate
Подпись hs.wifi.disassociate([interface]) -> nil
Тип Функция
Описание

Отключение интерфейса от текущей сети.

Параметры
  • interface - Необязательное имя интерфейса, как указано в результатах hs.wifi.interfaces. Если не указано, интерфейс по умолчанию - системное устройство WLAN.
Возвращаемое значение
  • Нет
Источник extensions/wifi/libwifi.m строка 110
interfaceDetails
Подпись hs.wifi.interfaceDetails([interface]) -> table
Тип Функция
Описание

Возвращает таблицу с данными о беспроводном интерфейсе.

Параметры
  • interface - Необязательное имя интерфейса, как указано в результатах hs.wifi.interfaces. Если не указано, интерфейс по умолчанию - системное устройство WLAN.
Возвращаемое значение
  • Таблица, содержащая данные об интерфейсе. Таблица будет содержать следующие ключи:
    • active - Интерфейс имеет соответствующую службу сети, включённую.
    • activePHYMode - Текущий активный режим PHY для интерфейса.
    • bssid - Текущий идентификатор базовой службы (BSSID) для интерфейса. Обратите внимание, что для этого ключа должен быть запущен hs.location
    • cachedScanResults - Таблица, содержащая сети, в настоящее время находящиеся в кэше сканирования для интерфейса WLAN. См. hs.wifi.backgroundScan для получения подробной информации о формате таблицы.
    • configuration - Таблица, содержащая текущую конфигурацию для данного интерфейса WLAN. Эта таблица будет содержать следующие ключи:
      • networkProfiles - Таблица, содержащая массив известных сетей для интерфейса. Элементы массива будут содержать следующие ключи:
        • ssid - Идентификатор набора служб (SSID) для профиля сети.
        • ssidData - Идентификатор набора служб (SSID) для сети, возвращённый как данные (1-32 октета).
        • security - Режим безопасности для профиля сети.
      • rememberJoinedNetworks - Флаг булевого типа, указывающий, запоминает ли клиент AirPort все подключённые сети.
      • requireAdministratorForAssociation - Флаг булевого типа, указывающий, требуется ли для изменения беспроводной сети пароль администратора.
      • requireAdministratorForIBSSMode - Флаг булевого типа, указывающий, требуется ли для создания сети IBSS (Ad Hoc) пароль администратора.
      • requireAdministratorForPower - Флаг булевого типа, указывающий, требуется ли для изменения состояния беспроводной мощности пароль администратора.
    • countryCode - Текущий код страны (ISO/IEC 3166-1:1997) для интерфейса.
    • hardwareAddress - Адрес аппаратного MAC-адреса для интерфейса.
    • interface - Имя интерфейса BSD.
    • interfaceMode - Текущий режим для интерфейса.
    • noise - Текущее агрегированное измерение шума (dBm) для интерфейса.
    • power - Включён ли интерфейс в данный момент.
    • rssi - Текущее агрегированное значение показателя силы сигнала при приёме (RSSI) (dBm) для интерфейса.
    • security - Текущий режим безопасности для интерфейса.
    • ssid - Текущий идентификатор набора служб (SSID) для интерфейса.
    • ssidData - Идентификатор набора служб (SSID) для интерфейса, возвращённый как данные (1-32 октета).
    • supportedChannels - Массив каналов, поддерживаемых интерфейсом для активного кода страны. Массив будет содержать записи со следующими ключами:
      • band - Диапазон каналов.
      • number - Номер канала.
      • width - Ширина канала.
    • transmitPower - Текущая мощность передачи (мВт) для интерфейса. Возвращает 0 в случае ошибки.
    • transmitRate - Текущая скорость передачи (Мбит/с) для интерфейса.
    • wlanChannel - Таблица, содержащая данные о канале, на котором находится интерфейс. Таблица будет содержать следующие ключи:
      • band - Диапазон каналов.
      • number - Номер канала.
      • width - Ширина канала.
Источник extensions/wifi/libwifi.m строка 326
interfaces
Подпись hs.wifi.interfaces() -> table
Тип Функция
Описание

Возвращает список имён интерфейсов для устройств WLAN, подключённых к системе.

Параметры
  • Нет
Возвращаемое значение
  • Таблица, содержащая имена всех интерфейсов WLAN для данной системы.
Примечания
  • В большинстве систем это будет один интерфейс, но результат всё равно возвращается как массив.
Источник extensions/wifi/libwifi.m строка 170
setPower
Подпись hs.wifi.setPower(state, [interface]) -> boolean
Тип Функция
Описание

Включение или выключение интерфейса Wi-Fi

Параметры
  • state - Булевое значение, указывающее, должен ли быть включён Wi-Fi-устройство (true) или выключен (false).
  • interface - Необязательное имя интерфейса, как указано в результатах hs.wifi.interfaces. Если не указано, интерфейс по умолчанию - системное устройство WLAN.
Возвращаемое значение
  • True, если изменение мощности было выполнено успешно, или false и строка ошибки, если при попытке установить состояние мощности произошла ошибка. Возвращает nil, если возникла проблема с подключением к интерфейсу.
Источник extensions/wifi/libwifi.m строка 75

Конструкторы

backgroundScan
Подпись hs.wifi.backgroundScan(fn, [interface]) -> scanObject
Тип Конструктор
Описание

Выполняет сканирование доступных сетей Wi-Fi в фоновом режиме (без блокировки).

Параметры
  • fn - функция обратного вызова, когда сканирование завершено.
  • interface - необязательное имя интерфейса, как указано в результатах hs.wifi.interfaces. Если не указано, используется системное значение по умолчанию для устройства WLAN.
Возвращаемое значение
  • объект сканирования
Примечания
  • Если в качестве функции обратного вызова передано значение nil, сканирование выполняется, но функция обратного вызова не вызывается. Это может быть полезно для обновления записи cachedScanResults возвращаемой методом hs.wifi.interfaceDetails.

  • Функция обратного вызова должна принимать один аргумент, который будет таблицей, если сканирование прошло успешно, или строкой с сообщением об ошибке, если нет. Таблица будет массивом доступных сетей. Каждый элемент массива будет таблицей, содержащей следующие ключи:

  • beaconInterval - интервал маяка (мс) для сети.

  • bssid - идентификатор базового набора служб (BSSID) для сети.

  • countryCode - код страны (ISO/IEC 3166-1:1997) для сети.

  • ibss - является ли сеть сетью IBSS (ad-hoc).

  • informationElementData - данные элементов информации, включенные в кадры маяка или ответа на запрос, как массив целых чисел.

  • noise - суммарное измерение шума (dBm) для сети.

  • PHYModes - таблица, содержащая поддерживаемые режимы PHY сети.

  • rssi - суммарное значение показателя силы принимаемого сигнала (RSSI) (dBm) для сети.

  • security - таблица, содержащая поддерживаемые типы безопасности сети.

  • ssid - идентификатор набора служб (SSID) для сети, закодированный как строка.

  • ssidData - идентификатор набора служб (SSID) для сети, возвращаемый в виде данных (1–32 октета).

  • wlanChannel - таблица, содержащая сведения о канале, на котором находится сеть. Таблица будет содержать следующие ключи:

  • band - полоса канала.

  • number - номер канала.

  • width - ширина канала.

  • Содержимое поля informationElementData возвращается в виде массива целых чисел, каждый элемент массива представляет байт в блоке данных для элемента.

    • Вы можете преобразовать эти данные в строку Lua, передав массив в качестве аргумента string.char(table.unpack(results.informationElementData)), но имейте в виду, что это поле содержит произвольные двоичные данные и не должно обрабатываться или рассматриваться как отображаемая строка. Оно требует дополнительной обработки, в зависимости от необходимых данных из ответа на запрос или маяка.
    • Для отладки, если вы хотите отобразить содержимое этого поля как строку, убедитесь, что вы обернули string.char(table.unpack(results.informationElementData)) с hs.utf8.asciiOnly или hs.utf8.hexDump, а не просто распечатывайте результат напрямую.
    • В качестве примера, используя hs.wifi.interfaceDetails, ключ cachedScanResults которого является массивом записей, идентичных аргументу, переданному в функцию обратного вызова этого конструктора:
    function dumpIED(interface)
        local interface = interface or "en0"
        local cleanupFunction = hs.utf8.hexDump -- or hs.utf8.asciiOnly if you prefer
        local cachedScanResults = hs.wifi.interfaceDetails(interface).cachedScanResults
        if not cachedScanResults then
            hs.wifi.availableNetworks() -- blocking, so only do if necessary
            cachedScanResults = hs.wifi.interfaceDetails(interface).cachedScanResults
        end
        for i, v in ipairs(cachedScanResults) do
            print(v.ssid .. " on channel " .. v.wlanChannel.number .. " beacon data:")
            print(cleanupFunction(string.char(table.unpack(v.informationElementData))))
        end
    end
    
    • Эти меры предосторожности приняты в ответ на проблему Hammerspoon GitHub Issue #859. Поскольку это двоичные данные, даже при очистке с помощью кода обертки UTF8 консоли, некоторые допустимые последовательности UTF8 оказались вызывать сбои в API CoreText OSX при рендеринге. Хотя некоторые определенные последовательности распространились в Интернете, конкретный анализ кода по адресу http://www.theregister.co.uk/2015/05/27/text_message_unicode_ios_osx_vulnerability/ предполагает возможную причину проблемы, которая также может быть вызвана другими неизвестными последовательностями. Поскольку последовательности в настоящее время непредсказуемы, мы не можем добавить к уже существующей обертки UTF8 для консоли Hammerspoon.
Источник extensions/wifi/libwifi.m строка 226

Методы

isDone
Подпись hs.wifi:isDone() -> boolean
Тип Метод
Описание

Возвращает, завершено ли сканирование объекта сканирования сетей Wi-Fi.

Параметры
  • Нет
Возвращаемое значение
  • логическое значение, указывающее, завершено ли сканирование.
Примечания
  • Это значение будет установлено, независимо от того, вызывалась ли фактическая функция обратного вызова. Этот метод можно проверить, чтобы увидеть, обновлены ли кэшированные данные для записи cachedScanResults возвращаемой методом hs.wifi.interfaceDetails.
Источник extensions/wifi/libwifi.m строка 387

© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.wifi.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API