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

Статус
В этой теме нельзя размещать новые ответы.

AdeQuAte

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

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 "Блок рекламы";
}

?>
 
Все правильно, а в намного более широких масштабах можно использовать GeoIP.
Более подробно здесь:
 
А диапазоны через тире указывать?
Блин.. У меня список нужных айпи состоит из 337 диапазонов, толкать это всё в одну страницу, тяжелая страница получится..
 
Можно сделать по мотивам второго сообщения, только проверять обширнее.
Написать функцию которая будет возвращать тру или фалс, а в ней сверять IP с правилами вашими, например что если совпадают первые три сегмента адресса 123.123.123 То тру, ну и так далее, сделать такую не очень сложно, зато эффективно.
 
А по первому варианту как правильно диапазоны указывать? Я через тире пробовал, через слеш. Ничего не помогает. Если списко айпи указываю, то работает, а диапазон нет.
 
А по первому варианту как правильно диапазоны указывать? Я через тире пробовал, через слеш. Ничего не помогает. Если списко айпи указываю, то работает, а диапазон нет.
Скорее всего только в цикле.
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 "Блок рекламы"; 
}
 
А если диапазон не один а 337? :D
 
PHP:
$ips = array('192.168.0.', '10.10.0.', '112.54.34.'); // диапазоны
foreach($ips as $ip){ // перебираем все диапазоны
    if((bool)strstr($_SERVER['REMOTE_ADDR'],$ip)){  // проверяем на вхождения ип-адреса в диапазон
        echo "Блок рекламы";
    }
}
 
В своем массиве ты при всем желании не переберешь все возможные ip-адреса, даже по маске. Есть уже готовые tds-системы и базы geo-ip, зачем так быдлокодить? На худой конец можно воспользоваться xml-интерфейсом от ip-geobase.ru
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху