Primeiro, você precisa configurar locationchanger , um script que é iniciado sempre que (possivelmente) as configurações de rede são alteradas.
Estou usando uma versão altamente modificada (sem detecção de localização, apenas mostre uma notificação de Growl sempre que qualquer coisa for alterada, ou seja, na seção "faça algumas coisas aqui que precisam acontecer depois de cada mudança de rede ") por mais de um ano, e é bastante confiável. Às vezes, detecta duas mudanças em rápida sucessão, mas é isso. Como as suas necessidades estão mais dentro dos padrões, provavelmente funcionará melhor ainda para você.
Abra o AppleScript Editor e cole o seguinte código:
tell application "System Events"
tell current location of network preferences
if exists service "Displayed Name" then
set VPNservice to service "Displayed Name"
if connected of first configuration of VPNservice then
disconnect VPNservice
else
connect VPNservice
end if
else
display alert "Could not find VPN connection"
end if
end tell
end tell
Substitua Displayed Name
pelo nome da sua conexão VPN em Preferências do Sistema »Rede .
Salvar como aplicativo, por exemplo /Applications/Utilities/Toggle VPN.app
Em seguida, edite o script locationchanger
e adicione
open "/Applications/Utilities/Toggle VPN.app"
Se você não quiser que um ícone seja devolvido no Dock sempre que você alterar alguma coisa, salve o AppleScript como script e execute-o em locationchanger
desta forma:
osascript "/path/to/Toggle VPN.scpt"
Esta solução exigirá alguma experimentação da sua parte. A razão é óbvia: Conectar ou desconectar uma VPN é uma mudança na configuração da rede . Então, considerando o que escrevi aqui, é possível que você se conecte a uma rede, o script se conecte à VPN, a alteração na configuração da VPN aciona o script novamente e se desconecta.
Claro, você pode simplesmente remover a linha que diz disconnect VPNservice
e tentar. Isso realmente depende do comportamento exato que você deseja. Mas estes são os blocos de construção.