Главная | Учебник | Статьи | FAQ | Книги | Ссылки |
IP адрес, подсети, маски
Есть некоторые вещи которые я не способен считать в уме, но зато без каких либо затруднений могу написать программу для их расчета. Одна из них - это перерасчет подсетей.
Задача: из 255.255.255.255/24 получить 255.255.255.0/255.255.255.0 и 255.255.255.0-255.255.255.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>";