Podłączam się do 2 różnych sieci wi-fi każdego dnia.
W domu
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?
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