'v4.3***************************************************** ' File: ie-start.vbs ' Autor: dieseyer@gmx.de ' dieseyer.de ' ' Testet ob der Router bereit antwortet - wenn ja, testet ' das Skript, ob ein DNS erreichbar ist - wenn ja, wird ' der InternetExplorer gestartet. ' ' Sinnvoll im HeimNetzwerk, wenn der Router z.B. ein ' #fil14-Disketten-Router mit analogem Modem ist. '********************************************************* Option Explicit ' Siehe http://dieseyer.de/dse-wsh-lernen.html#OptionExpl DIM DefaultGW, Ziel, Text, TextX, Text1, Text2, Button, FileIn, i, x, y, z, MsgTxt, IPtst DIM WSHShell, FSO, WSHNet, Env Set WSHShell = WScript.CreateObject("WScript.Shell") Set FSO = CreateObject("Scripting.FileSystemObject") Set WSHNet = WScript.CreateObject("WScript.Network") Set Env = WSHShell.Environment("PROCESS") Ziel = "~T~m~p~.tmp" Ziel = "winipcfg.out" Const RouterIP = "192.168.150.249" ' Const RouterIP = "192.168.150.126" ' Const RouterIP = "192.168.150.127" Const DNS1 = "192.76.144.66" ' MSN vom 10.02.2004 Const DNS2 = "145.253.2.75" ' Arcor vom 10.02.2004 Const DNS3 = "62.104.191.241" ' FreeNet.de vom 10.02.2004 DefaultGW = "" GateWayNT If DefaultGW = "" then MsgBox "Das Netzwerk ist nicht bereit bzw. " & vbCRLF & "es ist kein DefaultGateway eingetragen.", , WScript.ScriptName If DefaultGW = "" then WScript.Quit ' Test ob Router bereit ist '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ z = 0 Do Z = z + 1 ' IPtst = RouterIP IPtst = DefaultGW MsgTxt = " " & IPtst & " Test " & z & " erfolglos" IPTest if Text1 = "True" then Exit Do if z < 6 then wshshell.Popup "DefaultGateWay / Router ist nicht bereit!" , 2, MsgTxt, 48 if z > 5 then Button = wshshell.Popup("DefaultGateWay / Router ist nicht bereit!" , 5, MsgTxt, 37) if Button = 2 then wshshell.Popup "Router Test erfolglos und erledigt - das ist das ENDE!" , 2, WScript.ScriptName, vbExclamation WScript.Quit End If End If Loop ' Test ob DNS? erreichbar bereit ist '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ z = 2 Do z = z + 1 x = 1 + z - Int(z / 3) * 3 if x = 1 then IPtst = DNS1 if x = 2 then IPtst = DNS2 if x = 3 then IPtst = DNS3 if x = 1 then MsgTxt = " " & IPtst & "-DNS1 - Test " & z-2 & " erfolglos!" if x = 2 then MsgTxt = " " & IPtst & "-DNS2 - Test " & z-2 & " erfolglos!" if x = 3 then MsgTxt = " " & IPtst & "-DNS3 - Test " & z-2 & " erfolglos!" IPTest if Text1 = "True" then Exit Do Button = wshshell.Popup("Internet-Verbindung ist noch nicht bereit!" , 4, MsgTxt, 37) if Button = 2 then wshshell.Popup "Internet-Verbindung ist nicht bereit - Test beendet." , 5, WScript.ScriptName, vbExclamation WScript.Quit End If Loop wshshell.Run "IEXPLORE.EXE" WScript.Quit ' Test ob IP-Adr. erreichbar bereit ist '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sub IPTest WshShell.run ("%comspec% /c Ping " & IPtst & " -n 1 -w 500 > " & Ziel),0,true ' PING nur einmal ausführen => nur eine Zeile mit TTL= Set FileIn = fso.OpenTextFile(Ziel, 1 ) ' Datei zum Lesen öffnen TextX = FileIn.ReadAll ' alles lesen FileIn.Close Set FileIn = nothing ' folgende Zeile freigeben '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if fso.FileExists(Ziel) Then fso.DeleteFile(Ziel), True ' Datei löschen TextX = Split(TextX, vbCrLf ,1) ' alles gelesene in Zeilen aufteilen Text1 = "False" for i = 0 to ubound(TextX) ' jede Zeile überprüfen if InStr(TextX(i), "TTL=") > 1 then Text1 = "True" next End Sub Sub GateWayNT if Env("OS") = "Windows_NT" then WSHShell.run "%comspec% /c ipconfig > " & Ziel, 0, True ' ipconfig nach Ziel umleiten else WSHShell.run "winipcfg /batch" ,0 ,True ' winipcfg /batch legt autom. "winipcfg.out" an end if Set FileIn = fso.OpenTextFile(Ziel, 1 ) ' Datei zum Lesen öffnen TextX = FileIn.ReadAll ' alles lesen FileIn.Close Set FileIn = nothing ' folgende Zeile freigeben '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if fso.FileExists(Ziel) Then fso.DeleteFile(Ziel), True ' Datei löschen TextX = Split(TextX, vbCRLF) ' alles gelesene in Zeilen aufteilen for i = 0 to ubound(TextX) ' jede Zeile überprüfen if InStr(UCase(TextX(i)), "GATEWAY") then DefaultGW = Mid(TextX(i), InStr(UCase(TextX(i)), ": ") + 1) DefaultGW = trim(DefaultGW) End If next End Sub