<?php
/**
* Получение диапазона ip по маске
* автор: Nc_Soft
* 01.03.10
*/
$ip = '217.118.66.0/24';
$mask = split('/', $ip);
$start = sprintf('%u', ip2long($mask[0]));
$end = $start + pow(2, 32-$mask[1]) - 1;
echo 'Искомый диаппазон: ';
echo long2ip($start);
echo ' - ';
echo long2ip($end);
//обратное преобразование
$start = '217.118.66.0';
$end = '217.118.66.255';
$mask = 32 - log(sprintf('%u', ip2long($end)) - sprintf('%u', ip2long($start)) + 1, 2);
$mask = floor($mask);
echo PHP_EOL.'маска = '.$mask;
/*
Зачем это всё надо?
-Записывать диаппазоны через маску короче
-Чтобы закрыть доступ через .htaccess к диаппазону ip надо писать через маску
deny from 217.118.66.0/24
*/