Bonjour à tous,
J'ai pour habitude d'utiliser ce script :
Il permet de lancer un VPN au démarrage de la machine (j'ai créé une application lancée au démarrage). Etant souvent en déplacement, je n'ai pas toujours la possibilité d'être connecté à Internet. De ce fait l'application se lance et OSX m'affiche très souvent un message d'erreur comme quoi il ne peut pas se connecter. Normal. Du coup je suis obligé de quitter l'application pour que ces messages ne reviennent pas. Et si entre temps j'ai accès à une connexion, il me faut relancer l'application.
J'aimerai donc faire un script qui ne connecte le VPN uniquement si une connexion est active.
J'ai donc écrit ceci :
Lorsque je lance l'application, aucun souci pour se connecter au VPN. Je débranche le câble RJ45 (je n'ai pas de Wifi sous la main pour essayer), le VPN se déconnecte. Jusque là tout va bien. Lorsque je rebranche le câble, rien ne se passe, le VPN n'est pas relancé.
Auriez-vous une petite idées? Une erreur de code? (c'est mon premier script, jusqu'à présent le copier-coller depuis Internet fonctionnait bien)
Je vous remercie.
Moutabix
J'ai pour habitude d'utiliser ce script :
Bloc de code:
on idle
tell application "System Events" to tell current location of network preferences
set t_service to service "VPN" -- nom du service VPN
if not connected of current configuration of t_service then connect t_service
end tell
return 5 -- vérification au 5 secondes
end idle
Il permet de lancer un VPN au démarrage de la machine (j'ai créé une application lancée au démarrage). Etant souvent en déplacement, je n'ai pas toujours la possibilité d'être connecté à Internet. De ce fait l'application se lance et OSX m'affiche très souvent un message d'erreur comme quoi il ne peut pas se connecter. Normal. Du coup je suis obligé de quitter l'application pour que ces messages ne reviennent pas. Et si entre temps j'ai accès à une connexion, il me faut relancer l'application.
J'aimerai donc faire un script qui ne connecte le VPN uniquement si une connexion est active.
J'ai donc écrit ceci :
Bloc de code:
property test : missing value -- déclaration de la variable "test"
on run
delay 1 -- délai pour laisser le temps à la machine de se connecté à Internet
set test to true -- on présume qu'une connexion est disponible, soyons optimistes...
end run
on idle
tell application "System Events" to tell current location of network preferences
try
do shell script "ping -c 1 google.com" -- on ping Google
on error
set test to false -- changement d"état de la variable en cas d'erreur
end try
if test is true then
set t_service to service "VPN"
if not connected of current configuration of t_service then -- si le VPN n'est pas connecté
connect t_service -- on s'y connecte
else
delay 5 -- si déjà connecté, on attend 5 secondes avant de tester à nouveau la connexion VPN
end if
else
delay 10 -- si le ping a échoué, on attend 10 secondes avant de tester à nouveau le ping
end if
end tell
return 1 -- et on retourne au début après une seconde
end idle
Lorsque je lance l'application, aucun souci pour se connecter au VPN. Je débranche le câble RJ45 (je n'ai pas de Wifi sous la main pour essayer), le VPN se déconnecte. Jusque là tout va bien. Lorsque je rebranche le câble, rien ne se passe, le VPN n'est pas relancé.
Auriez-vous une petite idées? Une erreur de code? (c'est mon premier script, jusqu'à présent le copier-coller depuis Internet fonctionnait bien)
Je vous remercie.
Moutabix