Есть некоторые вещи которые я не способен считать в уме, но зато без каких
либо затруднений могу написать программу для их расчета. Одна из них — это
перерасчет подсетей.
Задача: из 0.0.0.0/24 получить 0.0.0.0/255.255.255.0 и 0.0.0.0-0.0.0.255
Решение:
$ip=explode(«/»,»XXX.XXX.XXX.XXX/24″);
$mask=0xFFFFFFFF;
for ($j=0;$j<32-$ip[1];$j++) $mask=$mask<<1;
$lip=ip2long($ip[0]);
print «<P>Результат: «.long2ip($lip&$mask).»/».long2ip($mask).»</P>»;
print «<P>Результат: «.long2ip($lip&$mask).»-».long2ip(($lip&$mask)+(~$mask)).»</P>»;
Источник: codingrus.ru