Exécuter le programme s'il est connecté à un réseau Wi-Fi spécifique?

20

Est-il possible qu'un programme démarre automatiquement lorsque je me connecte à un routeur spécifique et qu'il s'arrête lorsque je me déconnecte de ce routeur?

Fondamentalement, je veux qu'un programme s'exécute pendant que je suis au travail (horaires flexibles, donc je ne peux pas simplement avoir une sorte de fonction de minuterie) mais pas quand je suis à la maison - ou ailleurs.

Je cours: Macbook air OS X version 10.9.4

membre invité
la source
Quel type de programme Yuo aimerait lancer / terminer? Je peux vous écrire un démon qui exécutera le script bash et passera "SSID" lors de la connexion et également "SSID" du réseau déconnecté.
Mateusz Szlosek
Peu importe
Le logiciel tiers @Mateusz n'est pas toujours une meilleure solution, juste une alternative!
grg
@MateuszSzlosek, je suis également curieux de savoir quelle aurait été votre solution. Dans mon but, je préférerais quelque chose de moins qu'une autre application, car j'utiliserais votre solution pour connecter ma demande.
rsaxvc
@rsaxvc J'ai publié un lien Github avec ma mise en œuvre rapide. Beaucoup de choses peuvent être modifiées, mais vous aurez les bases :)
Mateusz Szlosek

Réponses:

12

Vous pouvez utiliser ControlPlane où vous pouvez définir des règles pour effectuer des tâches telles que l'ouverture d'applications en fonction de divers critères, notamment la connexion au Wi-Fi.

ControlPlane prend en charge plusieurs contextes dans lesquels un contexte est défini comme un emplacement ou une activité que vous effectuez. À l'aide de sources de preuves, vous pouvez créer un ensemble de règles qui indiquent à ControlPlane quel contexte appliquer à votre environnement. Lorsque ControlPlane entre ou sort d'un contexte, un ensemble d'actions est effectué.

ControlPlaneX , une branche non officielle du projet open source, a gardé le projet fonctionnant pour Mojave.

grg
la source
@Seamus J'ai ajouté un lien vers un fork maintenu qui inclut le support de Mojave.
grg
Merci, mais que signifie "fork non officiel"? Savez-vous?
Seamus
@Seamus J'utilise le terme pour décrire la manière dont le projet open source s'est poursuivi. ControlPlaneX est une «fourchette» de ControlPlane, ce qui signifie qu'il continue d'utiliser le même code source que l'original et de s'appuyer dessus, ce qui est possible car le projet d'origine était open source. Si l'auteur d'origine du projet choisit une fourchette pour encourager les gens à y contribuer, cela devient une fourchette officielle, mais il ne semble pas que l'auteur d'origine l'ait fait avec une fourchette, donc toutes les fourches ne sont pas officielles, donc `` fourche non officielle '' . Celui-ci semble être la fourche la plus populaire.
grg
Situation intéressante alors ... le propriétaire d'origine a demandé de l'aide, et à la place, quelqu'un a bifurqué et a suivi son propre chemin. Tout est juste en amour et en open source, je suppose :)
Seamus
7

J'ai créé un exemple d'application démon à cet effet. Vous pouvez le trouver sur Github .

Pour le faire fonctionner:

  • Compilez-le en utilisant Xcode.
  • Déplacer Network Listener.appvers /Applicationsdir.
  • Déplacer .networkConnectedet .networkDisconnectedvers votre $HOMEdir.
  • Déplacer Network-Listener.plistvers ~/Library/LaunchAgents.
  • Make .networkConnectedet .networkDisconnectedexécutable.

Il s'exécutera automatiquement lorsque vous vous connecterez à votre compte. Si vous voulez le tester, exécutez ceci dans le terminal :

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

Les scripts reçoivent le nom SSID comme arguments.

N'hésitez pas à le modifier selon vos besoins. En cas de problème, faites le moi savoir.


Tout a été créé pour montrer les possibilités, beaucoup de choses peuvent être améliorées.

Mateusz Szlosek
la source
1
Merci pour l'inspiration Mateusz, j'ai créé une application similaire à la vôtre pour exécuter mes scripts de connexion VPN, sur Github, y compris un binaire d'application compilé pour ceux qui n'en auraient pas besoin: github.com/p2/WifiWatch
Pascal
6

Vous pouvez utiliser Sidekick qui vous permet d'effectuer des «actions» lorsque vous changez de lieu. L'emplacement est signalé à l'aide du Wi-Fi spécifique, ce qui signifie que vous pouvez faire des choses lorsque le Wi-Fi change.

Sidekick est une application qui met automatiquement à jour les paramètres de votre ordinateur portable en fonction de l'endroit où vous vous trouvez. Installez simplement l'application, configurez les endroits que vous fréquentez (maison, travail, café, etc.) et ne vous souciez plus jamais de vos paramètres!

grg
la source
3
Sidekick est actuellement de 29,00 $
respectTheCode