21.04.2015, 21:31
|
Новичок
|
|
Регистрация: 20.01.2015
Сообщения: 52
Версия Delphi: Pascal
Репутация: 10
|
|
И вот что получилось :
PHP код:
<?php
//массив СИДР чиста для проверки работоспособности
$ip_array = array(
'192.168.0.0/24', //доступ к серверу из ЛВС
'127.0.0.0/8' //локальный хост
);
//текущий ИП-адрес посетителя
$cur_ip_adrr = $_SERVER['REMOTE_ADDR'];
//функция определения вхождения ИП в СИДР, спасибо что подсказали
function ipCIDRcheck($ip, $cidr) {
list($net, $mask) = explode('/', $cidr);
return ( ip2long($ip) & (-1<<(32-$mask)) ) == ip2long($net);
}
//ЦИКЛ проверки вхождения текущего ИП в СИДРы
$flag = false;
foreach($ip_array as $cur_cidr)
{
if ((ipCIDRcheck($cur_ip_adrr, $cur_cidr)) == true)
{$flag = true; break;} //при первом вхождении установить флаг и выйти из цикла
else
{/*может потом что то допишу*/}
}
if ($flag == true)
{echo 'YES';} //все отлично
else
{echo 'NO';} //принмаем меры к нарушителю
?>
Теперь можно критиковать
|