Executar o programa se estiver conectado a um wifi específico?

20

É possível ter um programa iniciando automaticamente quando eu me conectar a um roteador específico e interromper quando eu me desconectar deste roteador?

Basicamente, quero que um programa seja executado enquanto estou no trabalho (horário flexível, portanto não posso ter apenas algum tipo de função de timer), mas não quando estou em casa - ou em outro lugar.

Estou executando: Macbook air OS X versão 10.9.4

guestmember
fonte
Que tipo de programa o Yuo gostaria de iniciar / encerrar? Eu posso escrever para você um daemon que executará o script bash e passará "SSID" na conexão e também "SSID" da rede desconectada.
Mateusz Szlosek
Não importa, eu ver que George encontraram melhores soluções :)
Mateusz Szlosek
O software de terceiros do @Mateusz nem sempre é uma solução melhor, apenas uma alternativa!
grg
@MateuszSzlosek, também estou curioso para saber qual seria sua solução. Para meu propósito, prefiro algo menos que outro aplicativo, pois usaria sua solução para conectar meu aplicativo.
rsaxvc
@rsaxvc Publiquei o link do Github com minha rápida implementação. Muita coisa pode ser mudada mas você vai ter o básico :)
Mateusz Szlosek

Respostas:

12

Você pode usar o ControlPlane, onde pode configurar regras para executar tarefas, como abrir aplicativos com base em vários critérios, incluindo conexão ao Wi-Fi.

O ControlPlane suporta múltiplos contextos nos quais um contexto é definido como um local ou atividade que você está executando. Usando fontes de evidência, você pode criar um conjunto de regras que informam ao ControlPlane qual contexto aplicar ao seu ambiente. Quando o ControlPlane entra ou sai de um contexto, um conjunto de ações é executado.

O ControlPlaneX , um fork não oficial do projeto de código aberto, manteve o projeto trabalhando para o Mojave.

grg
fonte
@Seamus Adicionei um link a um garfo mantido, que inclui o suporte ao Mojave.
grg
Obrigado, mas o que significa "garfo não oficial"? Você sabe?
Seamus
@Seamus Uso o termo para descrever a maneira pela qual o projeto de código aberto foi continuado. O ControlPlaneX é um 'fork' do ControlPlane, o que significa que continua usando o mesmo código-fonte que o original e construindo sobre ele, o que é possível porque o projeto original era de código aberto. Se o autor original do projeto escolher uma bifurcação para incentivar as pessoas a contribuírem, isso se tornará uma bifurcação oficial; no entanto, não parece que o autor original tenha feito isso com qualquer bifurcação; portanto, todos os garfos não são oficiais, portanto, 'bifurcação não oficial' . Este parece ser o garfo mais popular.
grg
Situação interessante então ... o proprietário original pediu ajuda e, em vez disso, alguém bifurcou-se e seguiu seu próprio caminho. Tudo é justo no amor e código aberto, suponho :)
Seamus
7

Eu criei um aplicativo de daemon de amostra para esse fim. Você pode encontrá-lo no Github .

Para fazê-lo funcionar:

  • Compile-o usando o Xcode.
  • Mover Network Listener.apppara /Applicationsdir.
  • Mover .networkConnectede .networkDisconnectedpara o seu $HOMEdir.
  • Mover Network-Listener.plistpara ~/Library/LaunchAgents.
  • Tornar .networkConnectede .networkDisconnectedexecutável.

Ele será executado automaticamente quando você fizer login na sua conta. Se você quiser testá-lo, execute isto no Terminal :

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

Os scripts recebem o nome SSID como argumentos.

Sinta-se livre para alterá-lo para suas necessidades. Em caso de problemas, avise-me.


Tudo foi criado para mostrar as possibilidades, muitas coisas podem ser melhoradas.

Mateusz Szlosek
fonte
11
Obrigado pela inspiração Mateusz, criei um aplicativo semelhante ao seu para executar meus scripts de conexão VPN, no Github, incluindo um aplicativo binário compilado para aqueles que precisam: github.com/p2/WifiWatch
Pascal
6

Você pode usar o Sidekick, que permite executar 'ações' ao mudar de local. O local é relatado usando o Wi-Fi específico, o que significa que você pode fazer coisas quando o Wi-Fi é alterado.

O Sidekick é um aplicativo que atualiza automaticamente as configurações do seu laptop com base em sua localização. Basta instalar o aplicativo, configurar os locais que você frequenta (casa, trabalho, uma cafeteria etc.) e nunca mexer nas configurações novamente!

grg
fonte
3
O Sidekick está atualmente com $ 29,00
respectTheCode