#undef GoTo 'jojo is right, thx ;-)) '+------------------------------------------------------------------------------------------+ '| Header: Evaluating parameters | '| DisplayCheck:|Il1 are Alt-0124, Big i, small L, One ߎę֚񱸩 | Const Author="ChkGW.Bas v1.1 2007..2012 by ytwinky, MD"' | '| (Shortcuts: none) | '| Purpose: Check if the DefaultIPGateway is accessible | '|Tested with the latest stable FB and the latest FBEdit | '+------------------------------------------------------------------------------------------+ Declare Sub StringToArray (byRef IPString As String, byRef Separator As String, IPArray() As Integer) Declare Function GetNetAdr(IP As String, Mask As String) As String Declare Function GetPing(Host As String) As String Declare Function GetGW(Host As String, byRef SubMask As String) As String Var NetAdr="Adr", i=0, DNr=0, Accessible=0, z="", IP="??", Gateway="??", SubnetMask="??" z=GetPing("localhost") z=Left(z, InStr(z, " ")-1) z=GetPing(z) i=InStr(z, "[") IP=Mid(z, i+1, InStr(z, "]")-1 -i) Gateway=GetGW(IP, SubnetMask) NetAdr=GetNetAdr(IP, SubNetMask) Accessible=NetAdr=GetNetAdr(Gateway, SubNetMask) Print Author &!"\nHostIP :" &IP &!"\nDefaultGateway:" &Gateway &!"\nSubnetMask :" &_ SubnetMask &!"\nNetAddress :" &NetAdr &*IIf(Accessible, @"", @!"\nNo access to DefaultGateway"); If Command(1)="" Then GetKey End Accessible 'ChkHost--> erstma kucken, obs ohne gateway geht --> host auswerten Function GetPing(Host As String) As String Var Dnr=FreeFile, z="", i=0, j=0 Open Pipe "Ping -n 1 " & Host &!" | Find \34]\34" For Input As #Dnr While Not Eof(DNr) Input #Dnr, z i=InStr(z, "]") j=InStr(z, " ") If i>0 Then Exit While Wend Close DNr If i>0 Then Return Mid(z, j+1, i-j) Return "Error" End Function 'Originally by agamemnus, search english fb-forum for split Sub StringToArray (byRef IPString As String, byRef Separator As String, IPArray() As Integer) Var m=1, n=0, i=0, LenIP=Len(IPString) Do n=InStr(m, IPString, Separator) If n=0 Then n=LenIP+1 IPArray(i)=Val(Trim(Mid(IPString, m, n-m))) If n>LenIP Then Exit Do m=n+1 i+=1 Loop End Sub Function GetNetAdr(IP As String, Mask As String) As String Static As Integer aIP(4), aMask(4) Var NetAdr="", i=0 StringToArray(IP, ".", aIP()) StringToArray(Mask, ".", aMask()) For i=0 To 3 NetAdr &= Str(aIP(i) And aMask(i)) &*IIf(i=3, @"", @".") Next Return NetAdr End Function Function GetGW(Host As String, byRef SubMask As String) As String ' needs declaration of Submask in main.. Var DNr=FreeFile, z="", gw="" Open Pipe "IPConfig.exe" For Input As #DNr 'get ip-config.. Do While Not Eof(DNr) Input #DNr, z If InStr(z, Host) Then Input #DNr, z SubMask=Mid(z, InStr(z, ":")+2) '..we now need subnetmask.. Input #DNr, z gw=Mid(z, InStr(z, ":")+2) '..and defaultipgateway Exit Do EndIf Loop Close DNr 'close pipe Return gw End Function