Start programu przy konkretnej sieci wifi


(si@tk@rz) #1

Podłączam się do 2 różnych sieci wi-fi każdego dnia.

  1. W domu

  2. W pracy

Gdy jestem w pracy łączę się z siecią i mam dostęp do serwera plików przez LAN i Internet. Oczywiste że wykorzystuję sieć LAN, gdy jestem w domu korzystam z sieci Internet aby dostać się do serwera. Mam program GoodSync, który na bieżąco synchronizuje moje foldery na dysku z folderami i plikami na serwerze. Gdy jestem w pracy chcę aby odbywało się to przez sieć LAN, natomiast gdy jestem w domu pozostaje mi Internet. W w/w programie mogę ustawić 2 zadania, w których pierwsze synchronizuje mi przez sieć LAN a drugie przez Internet. I chcę pierwsze albo drugie (przez skrót np. na pulpicie) w zależności w jakiej sieci jestem. Obie sieci mają różną adresacje IP. Tylko jak mogę to sprawdzać przy podłączaniu się do konkretnej sieci?


(Merliner) #2

Specjalnie instalowałem ten program bo nie wiedziałem o co biega.

Z jakiej opcji korzystasz przy wyborze serwera - windows shares, goodsync connect, ftp?

Rozumiem że chodzi ci synchronizację z plikami w pracy?


(si@tk@rz) #3

Tak, chodzi o synchronizację z plikami które są w pracy na serwerze. Korzystam z opcji ftp.

Może da się to jakoś zrobić dzięki skryptom w tym programie:

http://www.goodsync.com/support/manual# … _variables

I napisać coś w stylu:

Spróbuj puścić ping na adres router w sieci LAN

IF tak: uruchom zadanie: “Synchronizacja LAN”

ELSE

Synchronizacja “Internet”


(Merliner) #4

jak w programowaniu php.

Tylko że goodsync ma wbudowaną opcję zapisywania zadań.

Możesz zapisać osobne zadanie goodsync w domu, i osobne w pracy.

Będąc w domu uruchamiasz zadanie zapisane w domu, a w pracy te z pracy.


(si@tk@rz) #5

Rozwiązałem to przez skrypt vbs w autostarcie.

Option Explicit


Dim strHost

Dim oWS


strHost = "192.168.88.1"

Set oWS = WScript.CreateObject("WScript.Shell")


if Ping(strHost) = True then 

oWS.Run "C:/sync/wBiurze.lnk"

Else

oWS.Run "C:/sync/pozaBiurem.lnk"

end if


Function Ping(strHost)


    dim objPing, objRetStatus


    set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery _

      ("select * from Win32_PingStatus where address = '" & strHost & "'")


    for each objRetStatus in objPing

        if IsNull(objRetStatus.StatusCode) or objRetStatus.StatusCode<>0 then

    Ping = False

            'WScript.Echo "Status code is " & objRetStatus.StatusCode

        else

            Ping = True

            'Wscript.Echo "Bytes = " & vbTab & objRetStatus.BufferSize

            'Wscript.Echo "Time (ms) = " & vbTab & objRetStatus.ResponseTime

            'Wscript.Echo "TTL (s) = " & vbTab & objRetStatus.ResponseTimeToLive

        end if

    next

End Function