24. august 2005 - 18:26Der er
15 kommentarer og 1 løsning
Hjaelp til algoritme og lagring
Dette er et kryds kategori spg, men jeg haaber det gaar her.
Jeg har foelgende data (en bruger saetter denne data op, saa jeg har ingen ide om hvad han saetter vaerdierne til):
server ip (f.eks. 50.0.255.1) subnet mask (f.eks. 1.0.0.0)
udfra dette skal jeg generere en ny ip som endnu ikke er brugt.
Hvordan gemmer jeg dette nemmest saaledes at jeg hurtigt kan faa en ny IP ud?
En loesning er brute force (for loekke). Men dette kan godt tage RIGTIG lang tid, hvis man skal igennem alle 2^32 og der skal vaere et check (om IP'en allerede er taget) hver gang. En anden loesning?????
nu skal du vel ikke søge efter ledige subnet masker men efter ledige IP adresser
SELECT * FROM brugttabel ORDER BY ip lastip = -1 (ellee hvor du nu vil starte) while read { ip = ... // eller ipstart = og ipslut = hvis blok allokering if(ip > lastip+1) { // interval lastip+1 .. ip-1 er ledige } lastip = ip // eller lastip = ipslut hvis blok allokering
Problemet er desvaerre ogsaa afhaengig af subnet masken, da det er den der bestemmer hvilke IP'er der kan gives vaek. I tilfaelde af foernaevnte subnet mask, saa er der foelgende IP'er tilgaengelig:
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.