Avatar billede bigo Nybegynder
02. november 2010 - 21:21 Der er 7 kommentarer og
1 løsning

Find nærmest ip adresse i array

Hejsa.

Jeg har et array med alle de ipadresser der er i et ip segment - f.eks. 172.16.2.0/23 = array(172.16.2.0, 172.16.2.1,172.16.2.2 ... osv.. til 172.16.3.254)

Samtidig - sjovt nok.. - har jeg et indtastet ip adresse - kunne være $ip = "172.16.2.3"

Jeg vil gerne finde de 10 nærmeste ipadresser som ligner 172.16.2.3 fra ovenstående array.

Anyone?
Avatar billede majbom Novice
03. november 2010 - 09:16 #1
de 10 nærmeste er så 172.16.2.1, 172.16.2.2, 172.16.2.4 ... 172.16.2.11 ?
Avatar billede mcb2001 Nybegynder
03. november 2010 - 09:22 #2
hvis du skriver dine ip'er som strenge:
172016002000 for 172 16 2 0
så kan du bruge strengesammeligning og derved få det løst relativt nemt
Avatar billede bigo Nybegynder
03. november 2010 - 14:54 #3
splazz>f.eks. det kan også være 172.16.2.24
mcb2001> den holder desværre ikke
Avatar billede mcb2001 Nybegynder
03. november 2010 - 15:05 #4
hvordan definerer du 172.16.2.24 til at være en af de 10 nærmeste op 172.16.2.3 ?
Avatar billede majbom Novice
03. november 2010 - 18:51 #5
den kan jeg heller ikke lige gennemskue - kan det så osse være 172.16.2.223?
Avatar billede bigo Nybegynder
04. november 2010 - 21:52 #6
Levenshtein er det tætteste jeg kommer. Men det virker fint.

        // Is v4
        $ip_range = ipv4::host_range($ip_address);
        // create array of hosts in range
        $a = ip2long($ip_range[0]);
        $b = ip2long($ip_range[1]);
        $key = ip2long($q);

        for($x = $a; $x <= $b; $x++)
            $ip_array[] = long2ip($x);

        foreach($ip_array as $ip){
          $lev = levenshtein($q, $ip);
            if ($lev <=1)
                $ip_segment[] = $ip;
        }
Avatar billede majbom Novice
04. november 2010 - 22:01 #7
super - husk at lukke spørgsmålet :)
Avatar billede bigo Nybegynder
05. november 2010 - 06:54 #8
Arg.. glemte..
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