Avatar billede Mikker Praktikant
12. januar 2004 - 12:21 Der er 9 kommentarer og
1 løsning

Sorter ip-adresser

Hvordan sorterer jeg et array af ip-adresser korrekt:

Så 10.81.8.2 kommer før 10.101.3.1 ?
Avatar billede trer Nybegynder
12. januar 2004 - 12:22 #1
Sørg for at formatet i IP strengen er ens

010.081.008.002
010.101.003.001

Det burde løse det.
Avatar billede erikjacobsen Ekspert
12. januar 2004 - 12:23 #2
Avatar billede Mikker Praktikant
12. januar 2004 - 12:34 #3
Hvorfor får jeg flg. resultat:
130.228.136.23
169.254.42.100
10.49.158.10

Burde 10.49-adressen ikke komme først?
Avatar billede xyborx Nybegynder
12. januar 2004 - 12:36 #4
Jeg vil anbefale erikjacobsens svar, men ellers kan du prøve med natsort:
http://dk2.php.net/manual/en/function.natsort.php
Avatar billede Mikker Praktikant
12. januar 2004 - 12:49 #5
xyborx: Hvorfor vil du anbefale ip2long når natsort virker bedre?
Avatar billede erikjacobsen Ekspert
12. januar 2004 - 12:50 #6
Du skal selv tage højde for negative tal med ip2long, og det er derfor
du får det resultat. Men selv hvis du skal det i din egen sammenligningsfunktion
går det måske en anelse hurtigere end med natsort.
Avatar billede Mikker Praktikant
12. januar 2004 - 15:29 #7
Jeg skal lægge ip-adressen ind i en mysql-database i long-formatet for at kunne sortere. Jeg kan altså ikke løse negativ-problemet med sprinf("%u - hvad gør jeg?
Avatar billede erikjacobsen Ekspert
12. januar 2004 - 15:36 #8
Du kan bruge BIGINT som type i mysql
Avatar billede Mikker Praktikant
12. januar 2004 - 15:41 #9
Det gør jeg også, men problemet er at ip2long generere negative tal.
Jeg har dog lige fundet ud af at jeg kan bruge $ip = sprintf("%u",$ip);

Nu er mit problem at den ikke acceptere integer større end 127.255.255.255
Avatar billede Mikker Praktikant
12. januar 2004 - 16:02 #10
Jeg har fundet ud af det.
Tak for hjælpen alle sammen.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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