Статья

Страны пользователей и определитель прокси в моде геолокации для Invision Power Board (IPB)

Представляем мод геолокации для популярного форумного движка Invision Power Board (IPB).

Главные функции мода:

  • отображение страны и флага пользователя. Основано на API и реальных географических данных, а не выдуманных пользователями;
  • автодетекция прокси, VPN, TOR сетей, что поможет в борьбе со спамом и хулиганством.

Флаг возможно отображать:

  • на главной странице форума в статистике активных пользователей;
  • в списке активных пользователей (показывается также у гостей);
  • в профиле пользователя;
  • в списке всех пользователей;
  • в постах: в профиле и рядом с IP адресом (для модераторов).



Особенности мода:

  • кеширование запросов к API для каждой сессии, что позволяет существенно сократить количество обращений к базе;
  • запросы к API для адресов поисковых ботов не считаются;
  • мод работает с IPB версий 2.1.x, 2.2.x, 2.3.x;
  • страна в профиле определяется при регистрации пользователя и в дальнейшем не меняется, если не выбрана опция в настройках обновления при каждом новом посте (страна в профиле будет всегда актуальна);
  • для модераторов в каждом посте рядом с IP адресом записывается страна на момент написания поста;
  • названия стран доступны на английском, русском, немецком и испанском языках в следующих кодировках: UTF-8, ISO-8859-1, WINDOWS-1251, KOI8-R;
  • автоматическое скрытие постов, написанных с адресов прокси, TOR сети, серверов с хостинговых площадок и VPN (изменяется в настройках);
  • сортировка пользователей по странам.

Широкий выбор настроек:

  • выбор между режимами API "Country code" и "Service code"(будет доступно позже);
  • автосокрытие постов;
  • актуализация профиля пользователя;
  • возможность показа флага в разных местах форума определенным группам.

Скачать мод и инструкцию по установке:

Скрипт для простановки страны для уже зарегистрированных пользователей и старых постов находится внутри мода, также можно его скачать (ipbgeo_update.php) отдельно. (новая версия 1.5, 12.Дек.08)
Функция "service code" (для определения прокси) на данный момент не работает.

Все апдейты и новости касательно этого мода будут сопровождаться комментариями к этой статье, поэтому, чтобы следить за обновлениями, можно подписаться на RSS комментариев.

De-Light Россия23 Окт 2008 20:10#32Русский   
Поставил ваш мод, возникли некоторые вопросы.
Когда флаги появятся у всех? Они появляются как то частично..
Пока флаги видны только в блоке статистики, и то не у всех.
В профиле пользователя - тоже не видно. Вообщем жду ответа.
wipmania logo Alrond 24 Окт 2008 04:10#33Русский   
Это касается только страны в профиле:

1) если включена опция "обновления профиля", то все пользователи, написавшие хоть один пост после установки мода, получают страну

2) через пару дней выложу скрипт для уже зарегистрированных пользователей и старых постов, который просто обновит все данные у старых пользователей по такому алгоритму:
Берется IP последнего поста пользователя и по нему ставится страна в профиль, если не было ни одного поста, то по IP на момент регистрации
Здесь уже могут быть неточности, потому как интернет постоянно меняется и если юзер давно не писал и не появлялся, то у него может отобразиться неправильный флаг, потому как проверка проходит по актуальной базе.

В статистике посетителей на главной странице все равно всегда будет флаг, потому как в этом случае определение идет для сессии, а не берется из профиля
De-Light Россия25 Окт 2008 06:10#34Русский   
Вы немножко не так меня поняли. С 1 и 2 моментами все ясно. Но у меня флаги отображаются только в поле статистики и списке онлайн. Приведу наглядный пример, что отображается, а что нет:

+ на главной странице форума в статистике активных пользователей;
+ в списке активных пользователей (показывается также у гостей);
- в профиле пользователя;
- в списке всех пользователей;
- в постах: в профиле и рядом с IP адресом (для модераторов).
Следовал строго по интсрукции, все проверил уже на третий раз.
Не вижу в чем ошибка.
wipmania logo Alrond 28 Окт 2008 06:10#35Русский   
Как я вижу, код в html топиков присутствует правильный, определяет тоже правильно, то есть ZZ ("пустышку"), значит надо дождаться только скрипта-обновителя.
Остальное не могу проверить, так как после регистрации не получил код активации на gmail, и ничего не доступно
wipmania logo Alrond 12 Ноя 2008 18:11#46Русский   
Изменение в версии 1.1:
* Добавлена возможность показа списка стран с количеством онлайн пользователей из каждой из них
* Добавлен скрипт обновления стран для старых постов и пользователей
* Добавлена поддержка модов Members Online Today и "Кто был сегодня"
wipmania logo Alrond 15 Ноя 2008 09:11#51Deutsch   
wipmania logo Alrond 15 Ноя 2008 09:11#52English   
Tripp США30 Ноя 2008 14:11#72English   
wipmania logo Alrond 30 Ноя 2008 16:11#73English   
Tripp США30 Ноя 2008 20:11#75English   
wipmania logo Alrond 01 Дек 2008 13:12#79English   
Tripp США01 Дек 2008 16:12#84English   
wipmania logo Alrond 01 Дек 2008 17:12#85English   
wipmania logo Alrond 12 Дек 2008 08:12#105Русский   
Новая версия скрипта обновления 1.5
Исправлены ошибки, не до конца работал, если были пользователи без постов
wipmania logo Alrond 12 Дек 2008 08:12#108English   
wipmania logo Alrond 12 Дек 2008 08:12#109Deutsch   
Etpu Россия02 Янв 2009 23:01#203Русский   
При использовании скрипта выдает следующую ошибку.
Fatal error: Call to undefined function memory_get_usage() in /home/smc/sibmetcom.org/docs/ipbgeo_update.php on line 163

Как её исправить? Без скрипта не обновляются старые пользователи.
Anonymous США22 Янв 2009 06:01#497Русский   
Супер! Респект! А когда такое будет такой палгин для Vbulletin? :(
Юзаю этот скрипт уже больше 5 лет. До сих пор ничего нет! В это даже просто трудно поверить. За 10(?) лет существаоания скрипта всё что кто-то сделал так это отображение флага не по посту в форуме, а по текущей сессии в разделе "Кто онлайн".
http://www.vbsupport.org/forum/showthread.php?t=21402

В мемориз. Буду ждать плагина для VB Ж)
openid logo medplanet США17 Фев 2009 22:02#648Русский   
Недавно установил мод. Очень понравился!
Frutti Израиль03 Мар 2009 11:03#666Русский   
Здравствуйте, поставил ваш мод, огромное спасибо, правда есть один непонятный глюк - в списке активных пользователей, все с Израиля :) хотя в постах флаги отражаются корректно....
wipmania logo Alrond 09 Мар 2009 15:03#695Русский   
Это не все с израиля, это показывается флаг того юзера, что смотрит. Это глюк, только не мода, а обычно когда неправильно ставится мод.
Frutti Израиль08 Мар 2009 13:03#689Русский   
Здравствуйте, поставил ваш мод уже трижды, каждый раз одна и та же проблема - скрипт обновления не делает ничего, просто обновляет страницу, в списке акривных у всех флаги моей страны, ip_geo в запросе проверял, перечитал всю тему поддержки, решения так и не нашел.

спасибо за ответ.
wipmania logo Alrond 09 Мар 2009 15:03#696Русский   
давайте разберемся, пришлите через контактную форму адрес со скриптом.
про активных я уже вижу, разобрались и нашли ошибку, спасибо, исправлю в моде
wipmania logo Alrond 09 Мар 2009 15:03#697Русский   
кстати, проблема с активными из-за того, что там вставлен нестандартный код, начинающийся
if ( $this->ipsclass->vars['group_display_active'] )

Поэтому, как вы и нашли, дополнительно к
$this->ipsclass->DB->simple_construct( array( 'select' => 'id, member_id, member_name, login_type, running_time, member_group, ip_geo',

надо добавить s.ip_geo в
$this->ipsclass->DB->build_query( array( 'select'   => 's.id, s.member_id, s.member_name, s.login_type, s.running_time, s.member_group, s.ip_geo',
Korben Казахстан08 Май 2009 03:05#906Русский   
Здравствуйте. Поставил ваш мод, но при попытке запустить скрипт апдейта, у меня вылазит строчка:
Warning: Invalid argument supplied for foreach() in ipbgeo_update.php on line 81

А при попытке обновления, fsockopen() [function.fsockopen]: unable to connect to api.wipmania.com:80 (Connection timed out) in ipbgeo_update.php on line 213
Connection timed out (110)

Таймауты я настраивал - сделал равными число в апаче и в php.ini (300 секунд).
Подскажите, пожалуйста, как обновить.
donaviamoris Украина25 Июл 2009 03:07#1410Русский   
Не могу понять куда вставлять начиная с пункта 21 где надо найти файле /sources/lib/func_mot.php найти строчку 62:
У меня движок 2,3,6 такого файла там НЕТ есть только func_moD.php
но в нем нету такого кода, ТОже Касательно пункта 22 В файле /sources/lib/func_boardstats.php найти:
$data['memnum']++;
у меня часть этого кода попросту отсутствует, И куда же вставлять
$data['members'][$row['id']] .= " <img src='{$this->i
....?????
wipmania logo Alrond 30 Июл 2009 14:07#1476Русский   
Эти пункты только для тех, у кого поставлены моды "Members Online Today 3.2" или "Members Online Today/Кто был сегодня". В стандартном IPB их нет, поэтому эти пункты надо просто пропустить.
almajd Украина29 Авг 2009 13:08#1626Русский   
Здравствуйте Во первых спасибо вам за мод Действительно полезная Штука, у меня одна проблема возникла в ходе эксплуатации мода.
я успешно установил мод все работало нормально уже пол года но с ни давнего времени Все юзеры стали определяться под Флажком с Америки.
Причем везде и при новом посте Старый юзер с правильно определившимся флажком тоже приобретает Флаг с US.
Не могу понять весь скрипт проверил все как ставил так и стоит.
Может проблема в хостинге? или может что то нужно обновить в скрипте?
wipmania logo Alrond 29 Авг 2009 14:08#1629Русский   
Проверил сайт и нашел причину - она не в моде, по видимому вы недавно поставили какой-то прокси или балансер перед сайтом, который не передает реальный адрес на бекенд. Соответственно форум видит всех пользователей под одним и тем же адресом - этого фронтенда (x.x.x.3)
Вы можете это проверить даже просто посмотрев администратором на посты пользователей и их IP адреса. Они везде будут одинаковыми.
Для исправления надо настроить на фронтенде передачу реального IP адреса далее.
К примеру для Nginx это делается через
proxy_set_header   X-Real-IP        $remote_addr;

Как это сделать на lusca в вашем случае я не знаю, обращайтесь к хостеру.
Demeter Украина19 Авг 2010 16:08#2719Русский   
Ожидается ли и когда Геомод для IPB 3.1.x ?
Очень бы хотелось !
wipmania logo Alrond 30 Авг 2010 14:08#2747Русский   
да, конечно, будет, надеюсь, скоро! Но мне бы хотелось в новую версию встроить уже готовые сервис-коды, а по некоторым причинам выпуск базы сервис-кодов в общественность несколько затягивается...
Demeter Украина28 Окт 2010 12:10#2958Русский   
А сервис-коды - это что имеется ввиду?

Аноним/Имя OpenID OpenID Yahoo! OpenID AOL WordPress LiveJournal TypePad Vox Myvidoop Orange Yandex YandexBlog Mixi Myspace Flickr Verisign MyOpenID ClaimID

Все поля необязательны для заполнения

Для самой статьи оставьте поле пустым.
Для комментария максимум 5000 символов. BBcode включены.

Подписаться на ответы: все комментарии:RSS comments (ru)

Please have a look at our
Facebook Page and leave a comment

Creative Commons License
Creative Commons Attribution-Noncommercial 3.0 License