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
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