Геотаргетинг

Тема в разделе "PHP", создана пользователем AdeQuAte, 23 авг 2009.

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

    AdeQuAte

    Регистр.:
    23 мар 2007
    Сообщения:
    353
    Симпатии:
    45
    Хочу сделать чтобы блок рекламы показывался только определенным айпишникам. Это вообще возможно реализовать? Может готовые решения есть?
     
  2. FreShBY

    FreShBY Создатель

    Регистр.:
    8 авг 2009
    Сообщения:
    12
    Симпатии:
    1
    PHP:
    <?php

    // Список IP для которых показывается блок
    $ips = array('192.168.0.1''192.168.0.2''192.168.0.3');

    if( 
    in_array($_SERVER['REMOTE_ADDR'], $ips) )
    {
        echo 
    "Блок рекламы";
    }

    ?>
     
    AdeQuAte нравится это.
  3. Wiltner

    Wiltner Постоялец

    Регистр.:
    4 дек 2007
    Сообщения:
    126
    Симпатии:
    27
    Все правильно, а в намного более широких масштабах можно использовать GeoIP.
    Более подробно здесь:
    http://www.google.com/#hl=en&q=geoip+php
     
    AdeQuAte нравится это.
  4. AdeQuAte

    AdeQuAte

    Регистр.:
    23 мар 2007
    Сообщения:
    353
    Симпатии:
    45
    А диапазоны через тире указывать?
    Блин.. У меня список нужных айпи состоит из 337 диапазонов, толкать это всё в одну страницу, тяжелая страница получится..
     
  5. Fedotishe

    Fedotishe Создатель

    Регистр.:
    6 апр 2009
    Сообщения:
    10
    Симпатии:
    1
    Можно сделать по мотивам второго сообщения, только проверять обширнее.
    Написать функцию которая будет возвращать тру или фалс, а в ней сверять IP с правилами вашими, например что если совпадают первые три сегмента адресса 123.123.123 То тру, ну и так далее, сделать такую не очень сложно, зато эффективно.
     
  6. AdeQuAte

    AdeQuAte

    Регистр.:
    23 мар 2007
    Сообщения:
    353
    Симпатии:
    45
    А по первому варианту как правильно диапазоны указывать? Я через тире пробовал, через слеш. Ничего не помогает. Если списко айпи указываю, то работает, а диапазон нет.
     
  7. Dudarik

    Dudarik Писатель

    Регистр.:
    18 авг 2009
    Сообщения:
    3
    Симпатии:
    0
    Скорее всего только в цикле.
    For example
    PHP:
    $ips = array();
    for (
    $i=1;$i<100;$i++) 
    {
      
    $ips[$i]="192.168.0.".$i;
    }
    if( 
    in_array($_SERVER['REMOTE_ADDR'], $ips) ) 

        echo 
    "Блок рекламы"
    }
     
  8. AdeQuAte

    AdeQuAte

    Регистр.:
    23 мар 2007
    Сообщения:
    353
    Симпатии:
    45
    А если диапазон не один а 337? :D
     
  9. PapaJoe

    PapaJoe

    Регистр.:
    4 авг 2008
    Сообщения:
    620
    Симпатии:
    312
    PHP:
    $ips = array('192.168.0.''10.10.0.''112.54.34.'); // диапазоны
    foreach($ips as $ip){ // перебираем все диапазоны
        
    if((bool)strstr($_SERVER['REMOTE_ADDR'],$ip)){  // проверяем на вхождения ип-адреса в диапазон
            
    echo "Блок рекламы";
        }
    }
     
  10. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    В своем массиве ты при всем желании не переберешь все возможные ip-адреса, даже по маске. Есть уже готовые tds-системы и базы geo-ip, зачем так быдлокодить? На худой конец можно воспользоваться xml-интерфейсом от ip-geobase.ru
     
Статус темы:
Закрыта.