Sidder og arbejder på et vbscript som skal køre en funktion når maskinens lokale IP er inden for et defineret range.
Jeg er kommet frem til følgende, men det virker ikke rigtigt, det virker som den ikke kan trække IP adressen ud ordenligt, fordi når jeg laver en wscript.echo ip2num(strIPAddress) får jeg bare 0 smidt tilbage i hovedet.
option Explicit Public Function ip2num(ip) Dim i, a, N a = Split(ip, ".") N = CDbl(0) For i = 0 To UBound(a) N = N * 256 + a(i) Next ip2num = N End Function
Dim strIPAddress If ip2num(strIPAddress) >= ip2num("192.168.0.1") _ And ip2num(strIPAddress) <= ip2num("192.168.0.50") Then wscript.echo "Din ip er i range." Else wscript.echo "Din ip er ikke i range" End If
Hvor sætter du strIPAddress til en værdi? Jeg prøvede at teste din funktion ved at sætte strIPAddress til nogle forskellige IPer, og den ser umiddelbart ud til at virke fint.
Ja men det så nok der problemet faktisk ligger, fordi det gøres ingen steder.
strIPAddress skal være lige med maskinens IP adresse, så det der mangler en funktion der trækker maskinens ip adresse ud og sætter lige med strIPAddress
Lidt google hjalp, fandt et script der piller ip adresser(ne) ud:
On Error Resume Next Dim strComputer Dim objWMIService Dim propValue Dim objItem Dim SWBemlocator
Dim colItems
strComputer = "." Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator") Set objWMIService = SWBemlocator.ConnectServer(strComputer,"\root\CIMV2") Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration",,48) For Each objItem in colItems
For Each propValue in objItem.IPAddress If Not Isnodata(propValue) Then MsgBox "Your IP Address is: " & propValue Next
Next '------------------------------------------------------------------------------------- '===================================================================================== ' TITLE: IsNoData ' ' PURPOSE: Verify if passed parameter variable contain something. ' ' RETURN: True if contain something, otherwise, False. ' ' HOW TO USE: intResult = IsNoData(varSource) or ' If IsNoData(varSource) Then do something. ' ' AUTHOR: Christian Sawyer ' ==================================================================================== Function IsNoData(varVal2Check) 'Verify if varVal2Check contain something. On Error Resume Next If IsNull(varVal2Check) Or IsEmpty(varVal2Check) Then IsNoData = True Else If IsDate(varVal2Check) Then IsNoData = False ElseIf varVal2Check = "" Then IsNoData = True ElseIf Not IsObject(varVal2Check) Then IsNoData = False Else IsNoData = False End If End If End Function
Hvilket også er fint, nok, men så skal det bare mixes sammen med det jeg har i forvejen og så kommer nok også en anden problemstilling, der kan jo kommer flere ip adresser, pga. flere netværkskort, men det er nok hvis bare en af dem opfylder mine "krav"
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.