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

Тема в разделе "Как сделать...", создана пользователем zilon, 16 янв 2014.

  1. zilon

    zilon

    Регистр.:
    30 июл 2011
    Сообщения:
    370
    Симпатии:
    147
    всегда указывал по одному 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. esche

    esche

    Регистр.:
    9 авг 2009
    Сообщения:
    358
    Симпатии:
    242
    Вопрос не в том, как указать /указать можно именно так "2.60.0.0-2.63.255.255"/, а в том, как этот диапазон будет использоваться/разбираться.
    Где дальше этот массив $ip используется?
     
    zilon нравится это.
  3. zilon

    zilon

    Регистр.:
    30 июл 2011
    Сообщения:
    370
    Симпатии:
    147
    нужно чтобы проверялись все 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);
       
    }

    ?>
    ну почти так :-]
     
  4. esche

    esche

    Регистр.:
    9 авг 2009
    Сообщения:
    358
    Симпатии:
    242
    Добавить дополнительно обработку (проверять наличие "-" в строке, если есть - проводить сравнение)
    Для сравнения IP-шников использовать http://php.net/manual/en/function.ip2long.php
     
  5. Slavok

    Slavok Писатель

    Регистр.:
    1 дек 2013
    Сообщения:
    0
    Симпатии:
    0
    Возможно, вам легче было бы работать с подсетями, использую эту библиотеку: https://github.com/tapmodo/php-ipv4
    Там есть метод Ipv4_Subnet::ContainsAddress, который вам подойдет.