Avatar billede bigo Nybegynder
06. november 2009 - 08:00 Der er 1 kommentar og
1 løsning

Dan array af ipadresser

Hejsa.

Jeg leder efter en funktion der med en ipadresse (netværk) og en CIDR (f.eks. /24) subnetmaske kan levere et array over alle de ipadresser der i det sagte netværk.

Nogen der har noget liggende eller lige kan bikse noget sammen.

-- Bigo
Avatar billede nissen2630 Novice
06. november 2009 - 09:59 #1
Måske dette kan bruges:
http://ckorp.net/ipv4_calculator.php
Avatar billede bigo Nybegynder
06. november 2009 - 10:13 #2
Mja.. Resultatet jeg var ude efter var mere ala:

function CalcDefaultGateway($IPaddress, $Subnetmask)
{
  $IPaddress_Octets  = explode(".", $IPaddress);
    $Subnetmask_Octets = MaskbitsToOctets($Subnetmask);
  $Ting_Octets      = array();

  for ($A = 0; $A <= 3; $A++)
    $Ting_Octets[$A] = (int) $IPaddress_Octets[$A] & (int) $Subnetmask_Octets[$A];

  $Ting_Octets[3]++;

  return implode(".", $Ting_Octets);

}

function MaskbitsToOctets($number)
{
  $octets=array();
  for ($A = 0; $A <= 3; $A++){
    if (8>=$number){
      $octets[$A]=255;
      $number-=8;
    } elseif (0<$number) {
      $octets[$A]=bindec(substr(substr("11111111",0,$number)."00000000",0,8));
      $number=0;
    } else {
      $octets[$A]=0;
    }
  }
  return $octets;
}


$firstip = ip2long(CalcDefaultGateway($_POST[ip_segment], $_POST[ip_cidr]));
$lastip  = $firstip + pow(2, (32-$_POST[ip_cidr])) - 2;
   
for ($a = $firstip; $a <= $lastip; $a++)
$ip_octets_array[] = long2ip($a);
   
Det giver mig et array med ipnumre
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