• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Делаем модуль вывода баннера по стране и городу

попробовала новый вариант, но опять таки если айпи не определён то выходит ошибка.

Нашла такой код, который если айпи скрыт, не виден или не определён, выводит сообщение что айпи нету )

PHP:
 <?php

if (!preg_match("/^[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}$/", $_SERVER['REMOTE_ADDR']))
{
exit ("<br><h3 align='center'>Ваш IP адрес не определён или скрыт<h3>");   
}
?>

Попробовала вот так сымитировать отсутствие айпи, всё работает)

PHP:
 <?php
$ip = '';
if (!preg_match("/^[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}$/", $ip))
{
exit ("<br><h3 align='center'>Ваш IP адрес не определён или скрыт<h3>");   
}
?>
 
Последнее редактирование модератором:
Вы читаете что я пишу? вам для начала нужна конструкция, не один только ремоут_аддр
PHP:
if (!empty($_SERVER['HTTP_CLIENT_IP']))
    {
        $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
    {
        $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
        $ip=$_SERVER['REMOTE_ADDR'];
    }
 
Лицо-рука... Читаю тут Вашу переписку... Вы про IPv6 в курсе?

И что значит IP скрыт? А Apache ответный пакет куда будет отправлять? На деревню дедушке?
IP отправителя пакета известен всегда, другое дело, его может не быть в базе.
Если Ваш скрипт его не видит - либо сервер криво настроен, либо код не так написан...

P.s. на данный момент все пользователи IPv6 будут радоваться, что их IP скрыт )
P.p.s. дико ржал, когда на сервере не логировались действия с IPv6... Так и хотелось положить readmehaker.txt с просьбой записать свои действия в логи самостоятельно...
 
Лицо-рука... Читаю тут Вашу переписку... Вы про IPv6 в курсе?

И что значит IP скрыт? А Apache ответный пакет куда будет отправлять? На деревню дедушке?
IP отправителя пакета известен всегда, другое дело, его может не быть в базе.
Если Ваш скрипт его не видит - либо сервер криво настроен, либо код не так написан...

P.s. на данный момент все пользователи IPv6 будут радоваться, что их IP скрыт )
P.p.s. дико ржал, когда на сервере не логировались действия с IPv6... Так и хотелось положить readmehaker.txt с просьбой записать свои действия в логи самостоятельно...

Ну так я у себя в логах тоже вижу что у многих посетителей нет айпи, просто пусто и всё. Как будет показываться сайт им с тем моими скриптом, с ошибкой ведь.
 
Ну так я у себя в логах тоже вижу что у многих посетителей нет айпи
Поздравляю, у Вас криво настроен сервер, нужно перенастраивать, разбираться почему такое происходит.
И когда я говорю нужно - это значит. что это реально надо сделать, а не отложить "работает и так сойдёт". На базе IP работает очень много алгоритмов как в самом DLE, так и на сервере.

TCP/IP устроен таким образом, что у отправителя просто не может не быть IP. Ну вернее может, если это хаб (тупо шлёт все пакеты всем) и на моменте подключения к сети - первоначально общение идёт через MAC-адреса до назначения IP маршрутизатором. Ну или как-то так, я в сетях не силён.

Если это хостинг - отправьте сообщение админу, что он долба**б, а сами уходите на другой, даже если они это исправят. Если у них ТАКИЕ ошибки, то остальное в ещё худшем состоянии.

P.s. IP таки может не быть, но не для HTTP/HTTPS трафика. А вот к примеру команды WakeUp работает через MAC.
 
Кстати я за 7 лет в логах сайта (не сервера) не видела IPv6, IPv6 тоже определяется с помощью $_SERVER['REMOTE_ADDR'] ?
 
Да, только вид может быть такой:
::ffff:192.000.002.123
::ffff:192.0.2.123
0000:0000:0000:0000:0000:ffff:c000:027b
::ffff:c000:027b
::ffff:c000:27b
192.000.002.123
192.0.2.123

А их отсутствие обусловлено отсутствием IPv6 у хостера. Они используют гейт IPv6toIPv4, как и 90% других... Но код надо готовить уже сегодня с расчётом на IPv6
 
Ну вообщем совместными усилиями я сделала модуль показа баннеров по регионам странам и городам, используя стандартную базу и класс к ней. Ведь можно выводить не просто тупо координаты посетителя, город, страну, и область, а к этим переменным с помощью условий привязать и картинки, например если в переменной RU то вывести картинку image1.jpg, если US, то вывести картинку image2.jpg Ну и так далее....там куча переменных, вплоть до почтового кода))) Хочу заметить что подобный модуль есть готовый у REZER точка NET и стоит не хило 90$. Правда он с админкой и прочими плюшками, но это уже дело второе. Самое главное что у меня получилось практически то же самое и абсолютно бесплатно ))) Рыская по сети вчера позовчера и сегодня я видела что многие ищут это решение, странно что ищут готовенькое ))) но можно ведь сделать ручками ))) Короч всем спасибо !!! Тема может пригодится таким же чайникам и кастрюлькам как я, которые мелкими шажками делают свои первые шаги в ПЭ ХЭ ПЭ, как говорит Горбушка ))))
 
Вам бы лучше использовать всё таки это:
Код:
// Функция получения IP адреса
function get_ip($ip)
{
   if(!$ip) {$ip = $_SERVER['REMOTE_ADDR'];} // Если не указан ip при вызове функции берем по умолчанию
   // return filter_var($ip, FILTER_VALIDATE_IP);
   if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4))
   {
     return filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
   }
   if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6))
   {
     return filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6);
   }
   return "localhost";
}
PHP сам знает как ему лучше фильтровать IP.

Картинки можно выводить любые, и вообще можно много чего на базе GeoIP сделать, можно даже в DLE переменные встроить наподобии:
[country=ru][/country]

PS: Если хотите максимально быстрой Geo IP базы и минимально затраченных ресурсов, то лучше использовать Sypex Geo.
 
Такой вопрос, для Украины есть готовое рабочее решение, реализация идеи именно для dle 11.3? Необходимо выводить не только картинки в зависимости от города, но и любую другую информацию!
Есть еще один момент, необходимо, чтобы название города посетителя подставлялось так же в title и в <title></title> публикации(всех публикаций на сайте) или статической страницы на которой находится пользователь, соответственно эти два пункта корректировать в настройках публикации или статической страницы!
Сколько может стоять такой модуль или как самому это реализовать?
 
Последнее редактирование:
Назад
Сверху