hs.network.reachability
Этот подмодуль можно использовать для определения доступности целевого хоста. Дистанционный хост считается доступным, когда пакет данных, отправленный приложением в сетевой стек, может покинуть локальное устройство. Доступность не гарантирует, что пакет данных фактически будет получен хостом.
Важно помнить, что этот модуль работает, определяя, есть ли у компьютера маршрут для сетевого трафика, направленного к определенному пункту назначения. Активное подключение к интернету предоставляет маршрут по умолчанию для любых сетей, не являющихся частью локальной сети хоста, поэтому следует проявлять осторожность при тестировании для конкретных VPN или локальных сетей, чтобы избежать ложных срабатываний. Ниже приведены некоторые примеры:
Это простой наблюдатель, который будет вызываться всякий раз, когда состояние активного подключения к интернету компьютера изменяется:
hs.network.reachability.internet():setCallback(function(self, flags)
if (flags & hs.network.reachability.flags.reachable) > 0 then
-- a default route exists, so an active internet connection is present
else
-- no default route exists, so no active internet connection is present
end
end):start()
Обратите внимание, что когда активное подключение к интернету активное (доступное), любой конкретный сетевой тест, который не включает пару адресов, будет доступным, так как доступность интернета определяется как наличие маршрута по умолчанию для всех нелокальных сетей.
Конкретный тест для определения доступности сети OpenVPN. Для этого примера необходимо знать локальный IP-адрес компьютера в сети VPN (OpenVPN не устанавливает isDirect флаг) и проверен с помощью Tunnelblick.
hs.network.reachability.forAddress("10.x.y.z"):setCallback(function(self, flags)
-- note that because having an internet connection at all will show the remote network
-- as "reachable", we instead look at whether or not our specific address is "local" instead
if (flags & hs.network.reachability.flags.isLocalAddress) > 0 then
-- VPN tunnel is up
else
-- VPN tunnel is down
end
end):start()
Обзор API
- Константы - Полезные значения, которые нельзя изменить
- Конструкторы - Вызовы API, возвращающие объект, обычно тот, который предлагает методы API
- Методы - Вызовы API, которые могут быть выполнены только на объекте, возвращенном конструктором
Документация API
Константы
flags
| Подпись | hs.network.reachability.flags[] |
|---|---|
| Тип | Константа |
| Описание |
Таблица, содержащая числовое значение возможных флагов, возвращаемых методом hs.network.reachability:status или в параметре |
| Источник | extensions/network/libnetwork_reachability.m строка 328 |
Конструкторы
forAddress
| Подпись | hs.network.reachability.forAddress(address) -> reachabilityObject |
|---|---|
| Тип | Конструктор |
| Описание |
Возвращает объект доступности для указанного сетевого адреса. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/network/libnetwork_reachability.m строка 74 |
forAddressPair
| Подпись | hs.network.reachability.forAddressPair(localAddress, remoteAddress) -> reachabilityObject |
|---|---|
| Тип | Конструктор |
| Описание |
Возвращает объект доступности для указанного сетевого адреса с указанного localAddress. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/network/libnetwork_reachability.m строка 105 |
forHostName
| Подпись | hs.network.reachability.forHostName(hostName) -> reachabilityObject |
|---|---|
| Тип | Конструктор |
| Описание |
Возвращает объект доступности для указанного хоста. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/network/libnetwork_reachability.m строка 150 |
internet
| Подпись | hs.network.reachability.internet() -> reachabilityObject |
|---|---|
| Тип | Конструктор |
| Описание |
Создаёт объект доступности для проверки доступа к интернету |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/network/network_reachability.lua строка 45 |
linkLocal
| Подпись | hs.network.reachability.linkLocal() -> reachabilityObject |
|---|---|
| Тип | Конструктор |
| Описание |
Создаёт объект доступности для проверки IPv4 локальной сети |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/network/network_reachability.lua строка 63 |
Методы
setCallback
| Подпись | hs.network.reachability:setCallback(function) -> reachabilityObject |
|---|---|
| Тип | Метод |
| Описание |
Установить или удалить функцию обратного вызова для объекта доступности |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/network/libnetwork_reachability.m строка 237 |
start
| Подпись | hs.network.reachability:start() -> reachabilityObject |
|---|---|
| Тип | Метод |
| Описание |
Начинает отслеживать объект доступности на предмет изменений и вызывает функцию обратного вызова (если она есть), когда происходит изменение. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/network/libnetwork_reachability.m строка 272 |
статус
| Подпись | hs.network.reachability:status() -> number |
|---|---|
| Тип | Метод |
| Описание |
Возвращает статус доступности объекта. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/network/libnetwork_reachability.m строка 176 |
строковоеПредставлениеСтатуса
| Подпись | hs.network.reachability:statusString() -> string |
|---|---|
| Тип | Метод |
| Описание |
Возвращает строковое представление статуса доступности объекта. |
| Параметры |
|
| Возвращаемое значение |
|
| Примечания |
|
| Источник | extensions/network/libnetwork_reachability.m строка 202 |
остановка
| Подпись | hs.network.reachability:stop() -> reachabilityObject |
|---|---|
| Тип | Метод |
| Описание |
Останавливает наблюдение за объектом доступности для изменения. |
| Параметры |
|
| Возвращаемое значение |
|
| Источник | extensions/network/libnetwork_reachability.m строка 306 |
© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.network.reachability.html