Показать сообщение отдельно
  #5  
Старый 21.04.2015, 21:31
Pcrepair Pcrepair вне форума
Новичок
 
Регистрация: 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';}     //принмаем меры к нарушителю
?>

Теперь можно критиковать
Ответить с цитированием