[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Диапазон IP-адресов вставить в массив
Pcrepair
Добрый день.
Есть следующая ситуация :

<?php
$cur_ip_adrr = $_SERVER['REMOTE_ADDR']; //получили текущий адресс
$ip_array = array('192.168.0.1','192.168.0.2','192.168.0.3','127.0.0.1'); //массив по простому
if (in_array($cur_ip_adrr, $ip_array)) echo 'YES'; //проверили вхождение элемента в массив
?>


Но на самом деле массив ИП-адресов выглядит так 66.231.188.0/24 (для примера), точнее таких массивом много (допустим 10)

Вопрос : как средствами РНР из 66.231.188.0/24 сделать последовательность элементов?
spooki
Такое?
<?php
$acess_prov = array("80.82.60.225", "87.229.156.191/24", "80.83.224.0/24", "127.0.0.0/8");
function net_match ( $networks , $ip )
{
foreach ($networks as $network)
{
$ip_arr = explode ( '/' , $network );
$network_long = ip2long ( $ip_arr [ 0 ]);
$hexmask = 0xFFFFFFFF;

$x = ip2long ( $ip_arr [ 1 ]);
$mask = long2ip($x) == $ip_arr[1] ? $x : 0xffffffff << (32 - $ip_arr[1]);
$ip_long = ip2long ( $ip );

if (($ip_long & $mask) == ($network_long & $mask))
{
return true;
break;
}
}

return false;
}
if (!net_match($acess_prov, $_SERVER["REMOTE_ADDR"])){
echo 'yes ip';
}else{
echo 'no ip';
}
?>


_____________
XMLSEO сервис купли-продажи Яндекс.XML лимитов и туннелирования Yandex и Google выдачи
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.