Проверка IP

Тема в разделе "PHP", создана пользователем deloest, 9 июл 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. deloest

    deloest Создатель

    Регистр.:
    27 июн 2009
    Сообщения:
    22
    Симпатии:
    3
    подскажите код (или наведите на смысл) как проверять юзера по такому принцыпу:

    есть юзер с ип к примеру 1.1.1.2, он у него меняется по последнему числу, т.е. как сделать проверку на последнее число т.е.

    иф ($ип = 1.1.1.*) {
    ечо "Иди ходи";
    } елсе {
    ечо "Все норм";
    }

    имеется только его ИП 1.1.1.2 который записан одним полем в БД.

    :bc::bc::bc:
     
  2. megabil

    megabil Постоялец

    Регистр.:
    31 авг 2006
    Сообщения:
    143
    Симпатии:
    49
    PHP:

    if(strpos($ip,'1.1.1.')==0)){
    echo 
    "Hodi";
    }
    else{
    echo 
    "Ne hodi";
    }
     
    deloest нравится это.
  3. deloest

    deloest Создатель

    Регистр.:
    27 июн 2009
    Сообщения:
    22
    Симпатии:
    3
    спасибо огромное, но я тупанул когда вопрос создавал:

    как сделать проверку по первым трем цефрам Ип адреса если сервер узнал только его ИП к примеру 1.1.1.2

    Код:
    if(strpos($ip,'[U]$ПЕРВЫЕ 3 ЦЫФРЫ ИПишника[/U]')==0)){
    echo "Hodi";
    }
    else{
    echo "Ne hodi";
    }  
    $ПЕРВЫЕ 3 ЦЫФРЫ ИПишника - как именно это узнать?
     
  4. megabil

    megabil Постоялец

    Регистр.:
    31 авг 2006
    Сообщения:
    143
    Симпатии:
    49
    PHP:
    for($i=0;i<3;i++){
    $pos strpos($ip'.');
    $sip $sip+substr($ip,0,$pos);
    $ip substr($ip,$pos);
    }
    что то типа этого, проверяй могут быть ошибки на пхп почти не писал
     
    deloest нравится это.
  5. antidote

    antidote

    Регистр.:
    21 янв 2008
    Сообщения:
    167
    Симпатии:
    42
    PHP:
    <?php
    $ip 
    '11.22.33.44';
    $dotpos strrpos($ip'.');
    $parts substr($ip0$dotpos);
    echo 
    $parts;
    ?>
    записывает в $parts 11.22.33

    PHP:
    $ip_array explode('.',$ip);
    запишет в $ip_array[0] 11
    $ip_array[1] 22
    $ip_array[2] 33
    $ip_array[3] 44
     
    deloest нравится это.
  6. ConstNW

    ConstNW Постоялец

    Регистр.:
    30 июн 2007
    Сообщения:
    132
    Симпатии:
    39
    PHP:
    $ip1 '100.150.200.44';
    $ip2 '100.150.200.55';

    $numIp1 ip2long($ip1);
    $numIp2 ip2long($ip2);

    if( (
    $numIp1 >> 8) == ($numIp2 >> 8) )
    {
        echo 
    "Hodi";
    }
    else
    {
        echo 
    "Ne hodi";
    }
    Переводит ip в число и сравнивает, откидывая 8 бит.
     
    deloest нравится это.
  7. deloest

    deloest Создатель

    Регистр.:
    27 июн 2009
    Сообщения:
    22
    Симпатии:
    3
    для чего это если не секрет?
     
  8. ConstNW

    ConstNW Постоялец

    Регистр.:
    30 июн 2007
    Сообщения:
    132
    Симпатии:
    39
    Для чего откидывать 8 бит?
    8 бит это 255
    "откидывая" 8 бит - избавляемся от последней части ip

    Если потребуется сравнить скажем не три, а два первых "числа" ip, то надо будет "откинуть" 16 бит
     
  9. Drak0n4ik

    Drak0n4ik Создатель

    Регистр.:
    8 май 2009
    Сообщения:
    25
    Симпатии:
    1
    $_SERVER[REMOTE_ADDR] содержит IP пользователя
     
Статус темы:
Закрыта.