Programm ausführen, wenn es mit einem bestimmten WLAN verbunden ist?

Ist es möglich, dass ein Programm automatisch startet, wenn ich mich mit einem bestimmten Router verbinde, und dass es stoppt, wenn ich die Verbindung zu diesem Router trenne?

Grundsätzlich möchte ich, dass ein Programm läuft, während ich bei der Arbeit bin (flexible Arbeitszeiten, also kann ich nicht nur eine Art Timer-Funktion haben), aber nicht, wenn ich zu Hause bin - oder woanders.

Ich verwende: Macbook air OS X Version 10.9.4

Welche Art von Programm möchte Yuo starten/beenden? Ich kann Ihnen einen Daemon schreiben, der ein Bash-Skript ausführt und "SSID" beim Verbinden und auch "SSID" des getrennten Netzwerks weitergibt.
Egal, ich sehe, dass George bessere Lösungen gefunden hat :)
@Mateusz Software von Drittanbietern ist nicht immer eine bessere Lösung, nur eine Alternative!
@MateuszSzlosek, ich bin auch gespannt, was deine Lösung gewesen wäre. Für meinen Zweck würde ich etwas weniger als eine andere Anwendung bevorzugen, da ich Ihre Lösung verwenden würde, um meine Anwendung anzuschließen.
@rsaxvc Ich habe einen Github-Link mit meiner schnellen Implementierung gepostet. Vieles kann geändert werden, aber Sie werden die Grundlagen bekommen :)

Antworten (4)

Sie können ControlPlane verwenden, wo Sie Regeln einrichten können, um Aufgaben auszuführen, wie z. B. das Öffnen von Apps basierend auf verschiedenen Kriterien, einschließlich der Verbindung mit Wi-Fi.

ControlPlane unterstützt mehrere Kontexte, wobei ein Kontext als ein Ort oder eine Aktivität definiert ist, die Sie ausführen. Mithilfe von Nachweisquellen können Sie eine Reihe von Regeln erstellen, die ControlPlane mitteilen, welcher Kontext auf Ihre Umgebung angewendet werden soll. Wenn ControlPlane einen Kontext betritt oder verlässt, wird eine Reihe von Aktionen ausgeführt.

ControlPlaneX , ein inoffizieller Fork des Open-Source-Projekts, hat das Projekt für Mojave am Laufen gehalten.

@Seamus Ich habe einen Link zu einem gewarteten Fork hinzugefügt, der Mojave-Unterstützung enthält.
Danke, aber was bedeutet "inoffizieller Fork"? Wissen Sie?
@Seamus Ich verwende den Begriff, um die Art und Weise zu beschreiben, in der das Open-Source-Projekt fortgesetzt wurde. ControlPlaneX ist ein „Fork“ von ControlPlane, was bedeutet, dass es weiterhin den gleichen Quellcode wie das Original verwendet und darauf aufbaut, was möglich ist, weil das ursprüngliche Projekt Open Source war. Wenn der ursprüngliche Autor des Projekts einen Fork auswählt, um die Leute dazu zu ermutigen, zu einem Beitrag beizutragen, wird dies ein offizieller Fork, es scheint jedoch nicht, dass der ursprüngliche Autor dies mit einem Fork getan hat, daher sind alle Forks inoffiziell, daher „inoffizieller Fork“. . Dies scheint die beliebteste Gabel zu sein.
Interessante Situation also ... der ursprüngliche Besitzer bat um Hilfe, und stattdessen gabelte sich jemand und ging seinen eigenen Weg. All's fair in Love & Open Source, nehme ich an :)
Alle Links auf der Git-Seite von ControlPlaneX scheinen defekt zu sein, dh controlplanexapp.com existiert nicht. Lebt das Projekt noch? Wenn ja, wo können Sie die App herunterladen?

Ich habe zu diesem Zweck eine Beispiel-Daemon-App erstellt. Sie finden es auf Github .

Damit es läuft:

  • Kompilieren Sie es mit Xcode.
  • Verschieben Network Listener.appnach /Applicationsdir.
  • Bewegen Sie sich .networkConnectedund .networkDisconnectedzu Ihrem $HOMEdir.
  • Bewegen Sie Network-Listener.plistsich nach ~/Library/LaunchAgents.
  • Machen .networkConnectedund .networkDisconnectedausführbar.

Es wird automatisch ausgeführt, wenn Sie sich bei Ihrem Konto anmelden. Wenn Sie es testen möchten, führen Sie dies im Terminal aus :

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

Skripte erhalten SSID- Namen als Argumente.

Fühlen Sie sich frei, es für Ihre Bedürfnisse zu ändern. Bei Problemen lass es mich wissen.


Alles wurde geschaffen, um die Möglichkeiten aufzuzeigen, vieles kann verbessert werden.

Danke für die Inspiration, Mateusz, ich habe eine ähnliche App wie deine erstellt, um meine VPN-Verbindungsskripte auf Github auszuführen, einschließlich einer kompilierten App-Binärdatei für diejenigen, die sie möglicherweise benötigen: github.com/p2/WifiWatch
Funktioniert das in Catalina?

Sie können Sidekick verwenden , mit dem Sie "Aktionen" ausführen können, wenn Sie den Standort wechseln. Der Standort wird über das spezifische Wi-Fi gemeldet, was bedeutet, dass Sie Dinge tun können, wenn sich das Wi-Fi ändert.

Sidekick ist eine Anwendung, die Ihre Laptop-Einstellungen automatisch aktualisiert, je nachdem, wo Sie sich gerade befinden. Installieren Sie einfach die App, konfigurieren Sie die Orte, die Sie häufig besuchen (Zuhause, Arbeit, ein Café usw.) und machen Sie sich nie wieder mit Ihren Einstellungen Sorgen!

Sidekick kostet derzeit 29,00 $

wifi-location-changer ist ein Projekt auf GitHub, das das Shell-Skript locationchangerjedes Mal ausführt, wenn sich die Wifi-SSID ändert. locationchangersetzt die Variable LOCATIONund läuft scselect "$LOCATION", Sie können das durch Ihre eigene Aktion ersetzen.