network - Строка, содержащая SSID сети для подключения
passphrase - Строка, содержащая пароль сети
interface - Необязательная строка, содержащая имя интерфейса (см. hs.wifi.interfaces). Если не указано, используется стандартное системное устройство WLAN
Возвращаемое значение
Булево значение, true, если сеть подключена успешно, false — в случае ошибки
Примечания
Корпоративные сети Wi-Fi в настоящее время не поддерживаются. Пожалуйста, создайте проблему на GitHub, если вам нужна поддержка корпоративных сетей
Эта функция блокирует Hammerspoon до завершения операции
Если доступны несколько точек доступа с одинаковым SSID, будет случайным образом выбрана одна для подключения
interface - Необязательное имя интерфейса, как указано в результатах hs.wifi.interfaces. Если не указано, интерфейс по умолчанию - системное устройство WLAN.
Возвращаемое значение
Таблица, содержащая имена всех видимых сетей Wi-Fi
Примечания
ВНИМАНИЕ: Эта функция заблокирует все выполнение Lua до завершения сканирования. Вероятно, не рекомендуется использовать эту функцию слишком часто, если вообще нужно.
hs.wifi.currentNetwork([interface]) -> string or nil
Тип
Функция
Описание
Получение имени текущей сети Wi-Fi
Параметры
interface - Необязательное имя интерфейса, как указано в результатах hs.wifi.interfaces. Если не указано, интерфейс по умолчанию - системное устройство WLAN.
Возвращаемое значение
Строка, содержащая SSID подключённой сети Wi-Fi или nil, если нет подключения к Wi-Fi
interface - Необязательное имя интерфейса, как указано в результатах hs.wifi.interfaces. Если не указано, интерфейс по умолчанию - системное устройство WLAN.
Возвращает таблицу с данными о беспроводном интерфейсе.
Параметры
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 - Таблица, содержащая данные о канале, на котором находится интерфейс. Таблица будет содержать следующие ключи:
state - Булевое значение, указывающее, должен ли быть включён Wi-Fi-устройство (true) или выключен (false).
interface - Необязательное имя интерфейса, как указано в результатах hs.wifi.interfaces. Если не указано, интерфейс по умолчанию - системное устройство WLAN.
Возвращаемое значение
True, если изменение мощности было выполнено успешно, или false и строка ошибки, если при попытке установить состояние мощности произошла ошибка. Возвращает nil, если возникла проблема с подключением к интерфейсу.
Выполняет сканирование доступных сетей 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 - данные элементов информации, включенные в кадры маяка или ответа на запрос, как массив целых чисел.
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.
Возвращает, завершено ли сканирование объекта сканирования сетей Wi-Fi.
Параметры
Нет
Возвращаемое значение
логическое значение, указывающее, завершено ли сканирование.
Примечания
Это значение будет установлено, независимо от того, вызывалась ли фактическая функция обратного вызова. Этот метод можно проверить, чтобы увидеть, обновлены ли кэшированные данные для записи cachedScanResults возвращаемой методом hs.wifi.interfaceDetails.