Avatar billede bigo Nybegynder
22. november 2010 - 19:52 Der er 5 kommentarer og
1 løsning

IPv6 Host range

Hejsa.

Ja, jeg ved det kan blive mange ;-)

Men jeg søger et script der kan returnere et array med host adresser udfra en ipv6 adresse i notationen :::::/nn
Avatar billede intenz Novice
23. november 2010 - 18:08 #1
Prøv:
http://php.net/manual/en/function.gethostbyaddr.php

Den bør også virke med IPV6.
Avatar billede bigo Nybegynder
23. november 2010 - 19:32 #2
Sorry.

Yderligere forklaring:

Hvis jeg f.eks. angiver et ip som: 2a01:e35:aaa4:6860:a5e7:5ba9:965/64
skal der findes start og slut adresse på det segment hvori ovenstående segment findes.

1        1050::5:600:300c:326b/30
2        1050::1:5:600:300c:326b/64
3        1050::2:5:600:300c:326b/64
4        1050::3:5:600:300c:326b/64
5        1050::4:5:600:300c:326b/64
6        1050::5:5:600:300c:326b/64
7        1050::6:5:600:300c:326b/64
8        1050::7:5:600:300c:326b/64
9        1050::8:5:600:300c:326b/64
10        1050::9:5:600:300c:326b/64
11        1050::a:5:600:300c:326b/64
12        1050::b:5:600:300c:326b/64

Så det kunne give noget ala ovenstående.
Avatar billede intenz Novice
23. november 2010 - 22:06 #3
Nåå.

Det er vel mere et matematisk problem, jeg kan dog ikke gennemskue hvordan du kommer fra "2a01:e35:aaa4:6860:a5e7:5ba9:965/64" til den liste du viser.

Hvordan/hvor har du fundet den liste?
Avatar billede bigo Nybegynder
24. november 2010 - 08:00 #4
Jeps, de er ikke ens. Jeg fandt et site som kan lave beregninger på ipv6 - og vise sub-subnets ;-)

Men det site fortalte mig også at den ipadresse jeg brugte først - ikke var valid.. så jeg måtte benytte mig af en anden.

Det jeg nok søger er noget ala følgende (Lettere revideret fra php.net): (bare oversat til at være til ipv6)

    function host_range ($ip) {
    // $ip = "192.168.37.215/27";
        $ip_arr = explode('/', $ip);

        if ($ip_arr[1] < 32)
        {
            $bin = '';
            for($i=1;$i<=32;$i++) {
                $bin .= $ip_arr[1] >= $i ? '1' : '0';
            }
            $ip_arr[1] = bindec($bin);
   
            $ip = ip2long($ip_arr[0]);
            $nm = ip2long($ip_arr[1]);
            $nw = ($ip & $nm);
            $bc = $nw | (~$nm);
   
            $host_range = array (long2ip($nw+1), long2ip($bc - 1));
            return $host_range;
        }
        else
            return array ($ip_arr[0], $ip_arr[0]);
    }
Avatar billede intenz Novice
24. november 2010 - 14:04 #5
Jeg kan ikke hjælpe dig med det, så jeg springer fra igen.
Avatar billede bigo Nybegynder
07. december 2010 - 06:54 #6
Kan heller ikke selv lige finde en løsning.. så lukker.
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