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

20

¿Es posible tener un programa que se inicie automáticamente cuando me conecte a un enrutador específico y que se detenga cuando me desconecte 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

miembro invitado
fuente
¿Qué tipo de programa le gustaría a Yuo lanzar / finalizar? Puedo escribirte un demonio que ejecutará un script bash y pasará "SSID" al conectar y también "SSID" de la red desconectada.
Mateusz Szlosek
No importa, veo que George encontró mejores soluciones :)
Mateusz Szlosek
El software de terceros @Mateusz no siempre es una mejor solución, ¡solo una alternativa!
grg
@MateuszSzlosek, también tengo curiosidad por cuál habría 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
@rsaxvc He publicado el enlace de Github con mi implementación rápida. Se puede cambiar mucho, pero obtendrás lo básico :)
Mateusz Szlosek

Respuestas:

12

Puede usar ControlPlane, donde puede configurar reglas para llevar a cabo tareas como abrir aplicaciones basadas en varios criterios, que incluyen conectarse 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 indican a ControlPlane qué contexto aplicar a su entorno. Cuando ControlPlane entra o sale de un contexto, se realiza un conjunto de acciones.

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

grg
fuente
@Seamus He agregado un enlace a una bifurcación mantenida que incluye soporte de Mojave.
grg
Gracias, pero ¿qué significa "tenedor no oficial"? ¿Tú sabes?
Seamus
@Seamus Uso el término para describir la manera en que se continuó el proyecto de código abierto. ControlPlaneX es una 'bifurcación' de ControlPlane, lo que significa que continúa usando el mismo código fuente que el original y que se acumula sobre él, lo cual es posible porque el proyecto original era de código abierto. Si el autor original del proyecto elige un tenedor para alentar a las personas a contribuir, esto se convierte en un tenedor oficial, sin embargo, no parece que el autor original lo haya hecho con ningún tenedor, por lo tanto, todos los tenedores no son oficiales, por lo tanto, 'tenedor no oficial' . Este parece ser el tenedor más popular.
grg
Situación interesante entonces ... el propietario original solicitó ayuda, y en cambio alguien se bifurcó y siguió su propio camino. Todo es justo en el amor y el código abierto, supongo :)
Seamus
7

He creado una aplicación de daemon de muestra para este propósito. Lo puedes encontrar en Github .

Para hacerlo correr:

  • Compílelo usando Xcode.
  • Mover Network Listener.appa /Applicationsdir.
  • Mover .networkConnectedy .networkDisconnecteda su $HOMEdirectorio.
  • Mover Network-Listener.plista ~/Library/LaunchAgents.
  • Hacer .networkConnectedy .networkDisconnectedejecutable.

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

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

Las secuencias de comandos reciben el nombre SSID como argumentos.

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


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

Mateusz Szlosek
fuente
1
Gracias por la inspiración, Mateusz, he creado una aplicación similar a la suya para ejecutar mis scripts de conexión VPN, en Github que incluye un binario de aplicación compilado para aquellos que podrían necesitarlo: github.com/p2/WifiWatch
Pascal
6

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 el Wi-Fi cambia.

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, cafetería, etc.) y nunca más se preocupe por su configuración!

grg
fuente
3
Sidekick actualmente
cuesta