[GastForen Programmierung/Entwicklung AppleScript Tunnelblick, VPN, Schleife bei schlechter Verbindung

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Tunnelblick, VPN, Schleife bei schlechter Verbindung

lordnikkon
Beiträge gesamt: 2

23. Okt 2016, 13:13
Beitrag # 1 von 3
Bewertung:
(1992 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Forum,

ich habe ein Script das per Zufall ein VPN auswählt, es über Tunnelblick anwählt und wartet bis die Verbindung zustande gekommen ist. Das funktioniert soweit mal:

Code
set mylist to {"FRANCE-TCP", "FRANCE-UDP", "GERMANY-TCP", "GERMANY-UDP"} 

set configVPN to some item of mylist

display notification "Set VPN Config to: " & configVPN

tell application "Tunnelblick"
connect configVPN
get state of first configuration where name = configVPN
repeat until result = "CONNECTED"
delay 1
get state of first configuration where name = configVPN
end repeat
end tell


Ich bräuchte aber noch ein Ergänzung: und zwar soll der Verbindungsaufbau nur 60 Sekunden lang versucht werden. Sollte er nicht klappen, dann soll das Script ein anderes VPN wählen und es damit versuchen.

Hat vielleicht Jemand einen Tipp?

Grüße
lordnikkon
X

Tunnelblick, VPN, Schleife bei schlechter Verbindung

Hans Haesler
  
Beiträge gesamt: 5826

23. Okt 2016, 15:21
Beitrag # 2 von 3
Beitrag ID: #553450
Bewertung:
(1967 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo lordnikkon,

herzlich willkommen im AppleScript-Forum auf HDS! :-)

Eine mögliche Lösung (habe ich nicht richtig testen können, weil "Tunnelblick" nicht installiert ist):
– die Zählervariable 'ctr' initialisieren;
– eine äussere Wiederholschleife einfügen;
– die Zählervariable 'nSecs' initialisieren;
– die Flagge 'okay' initialisieren;
– bei der innere Wiederholschleifen die direkte Aussteigsbedingung entfernen;
– wenn das Ergebnis wie erwartet ist, der Variablen 'okay' den Wert 'true' zuweisen;
– bei jedem Umgang der inneren Wiederholschleife 'nSecs' um eins erhöhen;
– die Prüfung des Wertes von 'nSecs' als Ausstiegsbedingung definieren;
– einen Dialog einfügen, welcher erlaubt, die äussere Schleife zu verlassen;
– der Dialog wird nur gezeigt, wenn 'okay' den Wert 'false' hat.

Code
set mylist to {"FRANCE-TCP", "FRANCE-UDP", "GERMANY-TCP", "GERMANY-UDP"} 
set ctr to 1

repeat
set configVPN to some item of mylist

display notification "Set VPN Config to: " & configVPN

set nSecs to 0
set okay to false

tell application "Tunnelblick"
connect configVPN
get state of first configuration where name is configVPN

repeat
get state of first configuration where name is configVPN
if result is "CONNECTED" then
set okay to true
exit repeat
else
delay 1
set nSecs to nSecs + 1
if nSecs is 60 then
exit repeat
end if
end if
end repeat

if okay is false then
set ctr to ctr + 1
set dlogResult to button returned of (display dialog "Versuch Nummer " & ctr ¬
buttons {" Abbrechen ", "Weiter"} default button 2 with icon 1)
if dlogResult is " Abbrechen " then
error number -128
end if
else
exit repeat
end if
end tell

end repeat

Zum Testen kann anstelle von "if nSces is 60" eine Bedingung wie "if nSces is 5" benutzt werden, damit es schneller geht.

Gruss, Hans


als Antwort auf: [#553449]

Tunnelblick, VPN, Schleife bei schlechter Verbindung

lordnikkon
Beiträge gesamt: 2

26. Okt 2016, 13:43
Beitrag # 3 von 3
Beitrag ID: #553515
Bewertung:
(1746 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

Danke für den Will­kom­mens­gruß!

Das Script funktioniert perfekt. 1000 Dank für die Hilfe und bis bald hier im Forum.

Gruß
lordnikkon


als Antwort auf: [#553450]