Avatar billede borupborup Nybegynder
27. november 2006 - 14:46 Der er 10 kommentarer og
1 løsning

Udtræk fra database med leddige ip adresser.

Hejsa.
Jeg har en her jeg ikke lige kan knække.

Jeg har en database med masser af ip adresser.
Har brug for at at trække en liste over leddige ip adresser i et angivet subnet eks. 192.168.1.x ( X = 10 til 254)

Databasen indeholder kun de optaget ip adresser

Er der nogen der har et bud på denne???


Thomas
Avatar billede fennec Nybegynder
27. november 2006 - 14:54 #1
Mit første bud er at lave en løkke også 244 databaseopslag:

for f=10 to 254
  set rs = conn.execute("select * from IP where ip='192.168.1."& f &"'")
  if rs.eof then
    'IP er ledig
  else
    'IP er optaget
  end if
next
Avatar billede borupborup Nybegynder
27. november 2006 - 15:35 #2
Kanon.
Hva så hvis den kun skal vi de 10 første?
Den er lidt langtid om at komme alle 4000 records igennem
Avatar billede ldanielsen Nybegynder
27. november 2006 - 16:22 #3
Jeg synes hellere du skulle fylde tabellen med alle IP'er, det er jo kun 244 stk, ikke?

Så laver du et felt der viser at den er optaget, fx. et BrugerID, der fyldes når det er optaget.

Så:

SELECT strIP FROM IP WHERE BrugerID IS NULL
Avatar billede fennec Nybegynder
27. november 2006 - 16:31 #4
Jeg vil helt klart også hellere fortrække en DB løsning ala ldanielsen's. SÅ kan det løses med en sql-sætning, som er eksikviret på et par milisek.
Avatar billede borupborup Nybegynder
28. november 2006 - 11:14 #5
Problemet er at jeg har en database struktir jeg ikke kan ændre i.

Er der en smart måde så den kun tager de første 10 i eksemplet?
Avatar billede fennec Nybegynder
28. november 2006 - 11:57 #6
Hvilken database bruger du? For du har evt mulighed for at oprette views til at bruge som arbejdstabeller.
Avatar billede fennec Nybegynder
28. november 2006 - 11:59 #7
Hvis du bare skal finde de 10 første laver du en counter på løkken:

f=10
count = 0
while f<=254 and count < 10
  set rs = conn.execute("select * from IP where ip='192.168.1."& f &"'")
  if rs.eof then
    'IP er ledig
    count=count+1
  else
    'IP er optaget
  end if
  f=f+1
wend
Avatar billede fennec Nybegynder
28. november 2006 - 11:59 #8
Men den bliver bare værre og værre, da den hele tiden skal længere hen i rækken, hvilket betyder flere opslag inden den finder ledige IP'er
Avatar billede borupborup Nybegynder
28. november 2006 - 12:51 #9
Den gjorde det for mig
Avatar billede borupborup Nybegynder
28. november 2006 - 12:52 #10
Takker
Avatar billede fennec Nybegynder
28. november 2006 - 13:08 #11
np
.o) <-- One Eyed Jack
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester