¿Ejecutar el programa si está conectado a wifi específico?

¿Es posible que un programa se inicie automáticamente cuando me conecto a un enrutador específico y que se detenga cuando me desconecto de este enrutador?

Básicamente, quiero que un programa se ejecute mientras estoy en el trabajo (horario flexible, por lo que no puedo tener algún tipo de función de temporizador), pero no cuando estoy en casa, o en otro lugar.

Estoy ejecutando: Macbook air OS X Versión 10.9.4

¿Qué tipo de programa le gustaría lanzar/terminar a Yuo? Puedo escribirle un demonio que ejecutará el script bash y pasará "SSID" en la conexión y también "SSID" de la red desconectada.
No importa, veo que George encontró mejores soluciones :)
El software de terceros de @Mateusz no siempre es una solución mejor, ¡solo una alternativa!
@MateuszSzlosek, también tengo curiosidad por saber cuál hubiera sido su solución. Para mi propósito, preferiría algo menos que otra aplicación, ya que estaría usando su solución para conectar mi aplicación.
@rsaxvc He publicado un enlace de Github con mi implementación rápida. Se pueden cambiar muchas cosas, pero obtendrás lo básico :)

Respuestas (4)

Puede usar ControlPlane donde puede configurar reglas para realizar tareas como abrir aplicaciones en función de varios criterios que incluyen la conexión a Wi-Fi.

ControlPlane admite múltiples contextos donde un contexto se define como una ubicación o actividad que está realizando. Usando fuentes de evidencia, puede crear un conjunto de reglas que le indiquen a ControlPlane qué contexto aplicar a su entorno. Cuando ControlPlane entra o sale de un contexto, se realizan un conjunto de acciones.

ControlPlaneX , una bifurcación no oficial del proyecto de código abierto, ha mantenido el proyecto en funcionamiento en Mojave.

@Seamus He agregado un enlace a una bifurcación mantenida que incluye soporte para Mojave.
Gracias, pero ¿qué significa "bifurcación no oficial"? ¿Lo sabías?
@Seamus Utilizo el término para describir la forma en que se continuó con el proyecto de código abierto. ControlPlaneX es una "bifurcación" de ControlPlane, lo que significa que sigue usando el mismo código fuente que el original y se basa en él, lo cual es posible porque el proyecto original era de código abierto. Si el autor original del proyecto elige una bifurcación para alentar a las personas a contribuir, se convierte en una bifurcación oficial; sin embargo, no parece que el autor original lo haya hecho con ninguna bifurcación, por lo tanto, todas las bifurcaciones son no oficiales, por lo tanto, 'bifurcación no oficial' . Este parece ser el tenedor más popular.
Interesante situación entonces... el propietario original solicitó ayuda, y en su lugar alguien se bifurcó y siguió su propio camino. Supongo que todo es justo en el amor y el código abierto :)
Todos los enlaces en la página git de ControlPlaneX parecen estar rotos, es decir, controlplanexapp.com no existe. ¿Sigue vivo el proyecto? En caso afirmativo, ¿dónde se puede descargar la aplicación?

He creado una aplicación de daemon de muestra para este propósito. Puedes encontrarlo en Github .

Para hacerlo funcionar:

  • Compílalo usando Xcode.
  • Mover Network Listener.appa /Applicationsdirectorio
  • Mover .networkConnectedy .networkDisconnecteda su $HOMEdir.
  • Mover Network-Listener.plista ~/Library/LaunchAgents.
  • Hacer .networkConnectedy .networkDisconnectedejecutable.

Se ejecutará automáticamente cuando inicie sesión en su cuenta. Si desea probarlo, ejecute esto en la Terminal :

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

Los scripts reciben el nombre SSID como argumentos.

Siéntase libre de cambiarlo según sus necesidades. En caso de cualquier problema házmelo saber.


Todo fue creado para mostrar las posibilidades, muchas cosas se pueden mejorar.

Gracias por la inspiración Mateusz, creé una aplicación similar a la tuya para ejecutar mis scripts de conexión VPN, en Github, incluido un binario de aplicación compilado para aquellos que lo necesiten: github.com/p2/WifiWatch
¿Funciona esto en Catalina?

Puede usar Sidekick , que le permite realizar 'acciones' al cambiar de ubicación. La ubicación se informa utilizando el Wi-Fi específico, lo que significa que puede hacer cosas cuando cambia el Wi-Fi.

Sidekick es una aplicación que actualiza automáticamente la configuración de su computadora portátil en función de dónde se encuentre. ¡Simplemente instale la aplicación, configure los lugares que frecuenta (casa, trabajo, una cafetería, etc.) y nunca más se preocupe por la configuración!

Sidekick cuesta actualmente $ 29.00

wifi-location-changer es un proyecto en GitHub que ejecuta el script de shell locationchangercada vez que cambia el Wifi SSID. locationchangerestablece la variable LOCATIONy se ejecuta scselect "$LOCATION", puede reemplazar eso con su propia acción.