указать диапазон ip в массиве

zilon

Постоялец
Регистрация
30 Июл 2011
Сообщения
370
Реакции
146
всегда указывал по одному ipшнику вот так

PHP:
$ip = array(

'66.249.78.38', '66.249.78.91', '66.249.78.27', '66.249.74.46', '66.249.66.141', '66.249.66.1', '66.249.74.107', '66.249.81.38', '66.249.75.200', '66.249.66.30', '66.249.78.37', '66.249.78.192', '66.249.83.196', '66.249.64.6', '66.249.85.206', '194.114.133.130',

);

но теперь появилась необходимость указать диапазон ip, подскажите пожалуста как это сделать например диапазон: 2.60.0.0 - 2.63.255.255
 
Вопрос не в том, как указать /указать можно именно так "2.60.0.0-2.63.255.255"/, а в том, как этот диапазон будет использоваться/разбираться.
Где дальше этот массив $ip используется?
 
нужно чтобы проверялись все ip в указном диопазоне, то есть если диопазон 2.60.0.0-2.63.255.255 то

2.60.0.0
2.60.0.1
2.60.0.2
и так далее до
2.63.255.255

вот так будет использоваться

PHP:
<?php 
$ip_russian = array(

'2.60.0.0-2.63.255.255',

);

$ip = $_SERVER['REMOTE_ADDR'];
$user = true;

foreach($ip_russian as $v)
{
    if($v == $ip)
    {
    $user = false;
    break;
    }
}


if ($user == false)  

{

    $file  = fopen("log_not_russian.txt", "a");
    $log  = "IP: ".$_SERVER['REMOTE_ADDR']." | UA: " . $_SERVER['HTTP_USER_AGENT'] . " | HOST: ".gethostbyaddr($_SERVER['REMOTE_ADDR'])." | REFERER: ".$_SERVER['HTTP_REFERER']."\n";
    $test = fwrite($file, $log);
    fclose($file);
   
}

?>

ну почти так :-]
 
Добавить дополнительно обработку (проверять наличие "-" в строке, если есть - проводить сравнение)
Для сравнения IP-шников использовать Для просмотра ссылки Войди или Зарегистрируйся
 
Возможно, вам легче было бы работать с подсетями, использую эту библиотеку: Для просмотра ссылки Войди или Зарегистрируйся
Там есть метод Ipv4_Subnet::ContainsAddress, который вам подойдет.
 
Назад
Сверху