23 votos

¿Ejecutar el programa si se conecta a una wifi específica?

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

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

Estoy corriendo: Macbook Air Versión de OS X 10.9.4

0 votos

¿Qué tipo de programa le gustaría lanzar/terminar? Puedo escribirte un demonio que ejecutará bash script y pasará "SSID" en la conexión y también "SSID" de la red desconectada.

0 votos

No importa, veo que George encontró mejores soluciones :)

1 votos

@Mateusz El software de terceros no es siempre una solución mejor, sólo una alternativa.

12voto

siva Puntos 23

Puede utilizar ControlPlane donde se pueden configurar reglas para llevar a cabo tareas como la apertura de aplicaciones en función de varios criterios que incluyen la conexión a la Wi-Fi.

ControlPlane admite múltiples contextos, donde un contexto se define como una ubicación o actividad que se está realizando. Mediante el uso de fuentes de pruebas, puede crear un conjunto de reglas que indiquen a ControlPlane qué contexto debe 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 en funcionamiento hasta Mojave.

0 votos

@Seamus He añadido un enlace a un fork mantenido que incluye soporte para Mojave.

0 votos

Gracias, pero ¿qué significa "horquilla no oficial"? ¿Lo sabe?

8voto

hjdm Puntos 18

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

Para hacerlo funcionar:

  • Compílalo con Xcode.
  • Mover Network Listener.app a /Applications dir.
  • Mover .networkConnected y .networkDisconnected a su $HOME dir.
  • Mover Network-Listener.plist a ~/Library/LaunchAgents .
  • Hacer .networkConnected y .networkDisconnected ejecutable.

Se ejecutará automáticamente cuando se conecte a su cuenta. Si quiere probarlo, ejecute esto en Terminal :

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

scripts reciben SSID nombre 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, muchas cosas pueden ser mejoradas.

2 votos

Gracias por la inspiración Mateusz, he creado una aplicación similar a la tuya para ejecutar mis scripts de conexión a la VPN, en Github incluyendo un binario compilado de la aplicación para aquellos que puedan necesitarlo: github.com/p2/WifiWatch

0 votos

¿Funciona esto en Catalina?

6voto

siva Puntos 23

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

Sidekick es una aplicación que actualiza automáticamente la configuración de tu portátil en función de dónde te encuentres. Sólo tienes que instalar la aplicación, configurar los lugares que frecuentas, (casa, trabajo, una cafetería, etc.) y no volver a complicarte con la configuración.

3 votos

El Sidekick cuesta actualmente 29 dólares

3voto

carrie bradley Puntos 103

wifi-location-changer es un proyecto en GitHub que ejecuta el shell script locationchanger cada vez que el Wifi SSID cambia. locationchanger establece la variable LOCATION y corre scselect "$LOCATION" puede sustituirlo por su propia acción.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X