Programm ausführen, wenn eine Verbindung zu einem bestimmten WLAN besteht?

20

Ist es möglich, dass ein Programm automatisch gestartet wird, wenn ich eine Verbindung zu einem bestimmten Router herstelle, und beendet wird, wenn ich die Verbindung zu diesem Router trenne?

Grundsätzlich möchte ich, dass ein Programm bei der Arbeit ausgeführt wird (flexible Arbeitszeiten, damit ich nicht nur eine Timerfunktion haben kann), aber nicht, wenn ich zu Hause bin - oder woanders.

Ich laufe: Macbook Air OS X Version 10.9.4

Gastmitglied
quelle
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.
Mateusz Szlosek
Egal, ich sehe, dass George bessere Lösungen gefunden hat :)
Mateusz Szlosek
@Mateusz-Software von Drittanbietern ist nicht immer eine bessere Lösung, sondern nur eine Alternative!
grg
@MateuszSzlosek, ich bin auch gespannt, was deine Lösung gewesen wäre. Für meinen Zweck würde ich etwas weniger bevorzugen als eine andere Anwendung, da ich Ihre Lösung verwenden würde, um meine Anwendung zu verbinden.
RSAXVC
@rsaxvc Ich habe einen Github-Link mit meiner schnellen Implementierung gepostet. Eine Menge kann geändert werden, aber Sie werden die Grundlagen bekommen :)
Mateusz Szlosek

Antworten:

12

Mit ControlPlane können Sie Regeln einrichten, um Aufgaben wie das Öffnen von Apps anhand verschiedener Kriterien auszuführen, einschließlich der Verbindung zu Wi-Fi.

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

ControlPlaneX , eine inoffizielle Abzweigung des Open-Source-Projekts, hat das Projekt für Mojave weitergeführt.

grg
quelle
@Seamus Ich habe einen Link zu einer gepflegten Gabel hinzugefügt, die Mojave-Unterstützung enthält.
grg
Danke, aber was bedeutet "inoffizielle Gabel"? Wissen Sie?
Seamus
@Seamus Ich benutze den Begriff, um die Art und Weise zu beschreiben, in der das Open Source-Projekt fortgesetzt wurde. ControlPlaneX ist eine Abzweigung von ControlPlane, dh es wird weiterhin derselbe Quellcode wie beim Original verwendet und darauf aufgebaut, was möglich ist, weil das ursprüngliche Projekt Open Source war. Wenn der ursprüngliche Autor des Projekts eine Gabelung auswählt, um die Menschen zu ermutigen, Beiträge zu leisten, wird dies zu einer offiziellen Gabelung. Es scheint jedoch nicht, dass der ursprüngliche Autor dies mit einer Gabelung getan hat. Daher sind alle Gabeln inoffiziell, daher "inoffizielle Gabelung" . Dies scheint die beliebteste Gabel zu sein.
grg
Interessante Situation dann ... der ursprüngliche Besitzer bat um Hilfe, und stattdessen gabelte und ging jemand seinen eigenen Weg. Alles ist fair in Liebe & Open Source, nehme ich an :)
Seamus
7

Zu diesem Zweck habe ich eine Beispiel-Daemon-App erstellt. Sie können es auf Github finden .

Um es zum Laufen zu bringen:

  • Kompiliere es mit Xcode.
  • Gehe Network Listener.appnach /Applicationsdir.
  • Verschiebe .networkConnectedund .networkDisconnectedzu Deiner Richtung $HOME.
  • Bewegen Sie sich Network-Listener.plistzu ~/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 den SSID- Namen als Argumente.

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


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

Mateusz Szlosek
quelle
1
Vielen Dank für die Inspiration, Mateusz, ich habe eine App erstellt, die Ihrer ähnelt, 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
Pascal
6

Sie können Sidekick verwenden, mit dem Sie beim Standortwechsel Aktionen ausführen können. Der Standort wird über das spezifische WLAN gemeldet. Dies bedeutet, dass Sie Aktionen ausführen können, wenn sich das WLAN ändert.

Sidekick ist eine Anwendung, die Ihre Laptop-Einstellungen automatisch aktualisiert, je nachdem, wo Sie sich befinden. Installieren Sie einfach die App, konfigurieren Sie die Orte, die Sie besuchen (zu Hause, auf der Arbeit, in einem Café usw.), und machen Sie nie wieder Probleme mit Ihren Einstellungen!

grg
quelle
3
Sidekick ist derzeit $ 29.00
respectTheCode