Jeg har et lille problem, som jeg ikke rigtig kan dreje...
hvis jeg har et IP nr der feks hedder 192.168.0.10
og jeg gerne vil tjekke om dette IP nr ligger i et IP område der sat til:
fra 192.168.0.0 til 192.168.0.100
er der nogle derude der har et godt forslag til dette.
Jeg har været inde at splite IP nummer op, men det giver ikke et godt
resultat, efter min mening
TA
Noget ala nedenstående skulle nok kunne gøre det du ønsker:
Function ValidIPRange( IP, RangeStart, RangeEnd )
Dim HexIP, HexRangeStart, HexRangeEnd
IP = Split( IP, "." )
RangeStart = Split( RangeStart, "." )
RangeEnd = Split( RangeEnd, "." )
HexIP = Hex(IP(0)) & Hex(IP(1)) & Hex(IP(2)) & Hex(IP(3))
HexRangeStart = Hex(RangeStart(0)) & Hex(RangeStart(1)) &
Hex(RangeStart(2)) & Hex(RangeStart(3))
HexRangeEnd = Hex(RangeEnd(0)) & Hex(RangeEnd(1)) & Hex(RangeEnd(2)) &
Hex(RangeEnd(3))
If HexIP <= HexRangeEnd AND HexIP >= HexRangeStart Then
ValidIPRange = True
Else
ValidIPRange = False
End If
End Function
Ovenstående er taget fra min hukommelse og er ikke testet, men teorien i det
skulle være god nok.
--
Jakob Andersen
> og jeg gerne vil tjekke om dette IP nr ligger i et IP område
> der sat til:
>
> fra 192.168.0.0 til 192.168.0.100
Hvis du ved at inddata er et gyldigt ip-nummer kan du nøjes med at
udføre to tjek:
a) Left(ipVar, 10) = "192.168.0."
b) Hiv det sidste tal ud og undersøg værdien i forhold til dine
grænser (0 og 100). Du skal konvertere værdierne til int for at
sammenligne korrekt
En mere generel metode er at splitte nummeret op og kontrollere
hver gruppe for sig.
Jeg har lagt et eksempel på <http://damu.dk/jc/usenet/function.asp>
- kildekoden er tilgængelig via link på siden.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
Men jeres svar har ført til et nyt.....
Hvad nu hvis IP range springer...
Feks
192.168.0.0 to 192.168.0.255
192.168.1.0 to 192.168.1.100
ta
Så kører du det gennem to løkker og undersøger om det ligger inden for enten
den ene eller den anden.
som Jakob skrev
> If HexIP <= HexRangeEnd AND HexIP >= HexRangeStart Then
' her skal den så køre næste check som du an kalde *******2
RangeStart2 = Split( RangeStart2, "." )
RangeEnd2 = Split( RangeEnd2, "." )
--
Mvh / Regards
-=< Christian >=-
What capital has 164 letters in its name? See my web page to find out.
http://www.cmnielsen.dk ICQ: 25308942
Destiny is not a matter of chance it is a matter of choice
Hvis du benytter min funktion kan du vel blot bruge:
If ValidIPRange( "192.168.0.10", "192.168.0.0", "192.168.0.255" ) AND
ValidIPRange( "192.168.0.10", "192.168.1.0", "192.168.1.100" ) Then
' Ip'en er i dit Range
End If
--
Jakob Andersen
Det AND skulle selvfølgelig være et OR
--
Jakob Andersen