Запустить программу, если подключен к конкретному Wi-Fi?

20

Можно ли автоматически запускать программу при подключении к определенному маршрутизатору и останавливать ее при отключении от этого маршрутизатора?

По сути, я хочу, чтобы программа работала, когда я на работе (гибкий график, поэтому я не могу просто использовать какую-то функцию таймера), но не когда я дома - или где-то еще.

Я бегу: MacBook Air OS X Версия 10.9.4

guestmember
источник
Какую программу Юо хотел бы запустить / прекратить? Я могу написать Вам демон, который будет выполнять скрипт bash и передавать «SSID» при подключении, а также «SSID» отключенной сети.
Матеуш Шлосек
Неважно, я вижу, что Джордж нашел лучшие решения :)
Матеуш Шлосек
@Mateusz стороннее программное обеспечение не всегда лучшее решение, просто альтернатива!
grg
@MateuszSzlosek, мне также любопытно, каким было бы ваше решение. Для моих целей я предпочел бы что-то меньшее, чем другое приложение, так как я бы использовал ваше решение для подключения моего приложения.
rsaxvc 28.12.14
@rsaxvc Я разместил ссылку на Github с моей быстрой реализацией. Многое можно изменить, но вы получите основы :)
Mateusz Szlosek

Ответы:

12

Вы можете использовать ControlPlane, где вы можете настроить правила для выполнения таких задач, как открытие приложений на основе различных критериев, включая подключение к Wi-Fi.

ControlPlane поддерживает несколько контекстов, где контекст определяется как местоположение или действие, которое вы выполняете. Используя источники доказательств, вы можете создать набор правил, которые сообщают ControlPlane, какой контекст применять в вашей среде. Когда ControlPlane входит или выходит из контекста, выполняется набор действий.

ControlPlaneX , неофициальный форк проекта с открытым исходным кодом, поддерживал работу проекта с Mojave.

Grg
источник
@Seamus Я добавил ссылку на поддерживаемый форк, который включает поддержку Mojave.
grg
Спасибо, но что значит "неофициальная вилка"? Вы знаете?
Симус
@Seamus Я использую этот термин, чтобы описать способ, которым проект с открытым исходным кодом был продолжен. ControlPlaneX - это «форк» ControlPlane, то есть он продолжает использовать тот же исходный код, что и оригинал, и строит поверх него, что возможно, потому что исходный проект был открытым исходным кодом. Если первоначальный автор проекта выбирает форк, чтобы побудить людей вносить свой вклад, это становится официальным форком, однако не похоже, что первоначальный автор сделал это с каким-либо форком, поэтому все вилки являются неофициальными, поэтому «неофициальный форк» , Этот, кажется, самый популярный форк.
grg
Интересная ситуация тогда ... первоначальный владелец попросил помощи, и вместо этого кто-то раздвоил и пошел своим путем. Все честно в любви и с открытым исходным кодом, я полагаю :)
Симус
7

Для этого я создал пример приложения-демона. Вы можете найти это на Github .

Чтобы запустить его:

  • Скомпилируйте его, используя Xcode.
  • Переместить Network Listener.appв /Applicationsреж.
  • Двигайся .networkConnectedи .networkDisconnectedв твой $HOMEреж.
  • Переместить Network-Listener.plistв ~/Library/LaunchAgents.
  • Сделать .networkConnectedи .networkDisconnectedисполняемым.

Он будет автоматически запускаться при входе в свою учетную запись. Если вы хотите проверить это, запустите это в Терминале :

launchctl load -S Aqua -w ~/Library/LaunchAgents/Network-Listener.plist

Сценарии получают имя SSID в качестве аргументов.

Не стесняйтесь менять его для своих нужд. В случае каких-либо проблем, дайте мне знать.


Все было создано, чтобы показать возможности, многое можно улучшить.

Матеуш Шлосек
источник
1
Спасибо за вдохновение, Матеуш, я создал приложение, похожее на ваше, для выполнения моих сценариев VPN-подключения, на Github, включая скомпилированный двоичный файл приложения для тех, кому это может понадобиться: github.com/p2/WifiWatch
Pascal
6

Вы можете использовать Sidekick, который позволяет вам выполнять «действия» при изменении местоположения. Местоположение сообщается с использованием определенного Wi-Fi, что означает, что вы можете делать что-то, когда меняется Wi-Fi.

Sidekick - это приложение, которое автоматически обновляет настройки вашего ноутбука в зависимости от того, где вы находитесь. Просто установите приложение, настройте места, которые вы часто посещаете (дома, на работе, в кафе и т. Д.) И больше никогда не суетитесь со своими настройками!

Grg
источник
3
Sidekick в настоящее время стоит $ 29,00
респектTheCode