Статья

Страны пользователей и определитель прокси в моде геолокации для 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 Россия24 Окт 2008 03:10#32Русский   
Поставил ваш мод, возникли некоторые вопросы.
Когда флаги появятся у всех? Они появляются как то частично..
Пока флаги видны только в блоке статистики, и то не у всех.
В профиле пользователя - тоже не видно. Вообщем жду ответа.
wipmania logo Alex 24 Окт 2008 11:10#33Русский   
Это касается только страны в профиле:

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

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

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

+ на главной странице форума в статистике активных пользователей;
+ в списке активных пользователей (показывается также у гостей);
- в профиле пользователя;
- в списке всех пользователей;
- в постах: в профиле и рядом с IP адресом (для модераторов).
Следовал строго по интсрукции, все проверил уже на третий раз.
Не вижу в чем ошибка.
wipmania logo Alex 28 Окт 2008 12:10#35Русский   
Как я вижу, код в html топиков присутствует правильный, определяет тоже правильно, то есть ZZ ("пустышку"), значит надо дождаться только скрипта-обновителя.
Остальное не могу проверить, так как после регистрации не получил код активации на gmail, и ничего не доступно
wipmania logo Alex 13 Нояб 2008 01:11#46Русский   
Изменение в версии 1.1:
* Добавлена возможность показа списка стран с количеством онлайн пользователей из каждой из них
* Добавлен скрипт обновления стран для старых постов и пользователей
* Добавлена поддержка модов Members Online Today и "Кто был сегодня"
wipmania logo Alex 15 Нояб 2008 16:11#51Deutsch   
wipmania logo Alex 15 Нояб 2008 16:11#52English   
Tripp США30 Нояб 2008 21:11#72English   
wipmania logo Alex 30 Нояб 2008 23:11#73English   
Tripp США01 Дек 2008 03:12#75English   
wipmania logo Alex 01 Дек 2008 20:12#79English   
Tripp США01 Дек 2008 23:12#84English   
wipmania logo Alex 02 Дек 2008 00:12#85English   
wipmania logo Alex 12 Дек 2008 15:12#105Русский   
Новая версия скрипта обновления 1.5
Исправлены ошибки, не до конца работал, если были пользователи без постов
wipmania logo Alex 12 Дек 2008 15:12#108English   
wipmania logo Alex 12 Дек 2008 15:12#109Deutsch   
Etpu Россия03 Янв 2009 06: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 13:01#497Русский   
Супер! Респект! А когда такое будет такой палгин для Vbulletin? :(
Юзаю этот скрипт уже больше 5 лет. До сих пор ничего нет! В это даже просто трудно поверить. За 10(?) лет существаоания скрипта всё что кто-то сделал так это отображение флага не по посту в форуме, а по текущей сессии в разделе "Кто онлайн".
http://www.vbsupport.org/forum/showthread.php?t=21402

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

спасибо за ответ.
wipmania logo Alex 09 Мар 2009 21:03#696Русский   
давайте разберемся, пришлите через контактную форму адрес со скриптом.
про активных я уже вижу, разобрались и нашли ошибку, спасибо, исправлю в моде
wipmania logo Alex 09 Мар 2009 21: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 10: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 10: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 Alex 30 Июль 2009 21:07#1476Русский   
Эти пункты только для тех, у кого поставлены моды "Members Online Today 3.2" или "Members Online Today/Кто был сегодня". В стандартном IPB их нет, поэтому эти пункты надо просто пропустить.
almajd Украина29 Авг 2009 20:08#1626Русский   
Здравствуйте Во первых спасибо вам за мод Действительно полезная Штука, у меня одна проблема возникла в ходе эксплуатации мода.
я успешно установил мод все работало нормально уже пол года но с ни давнего времени Все юзеры стали определяться под Флажком с Америки.
Причем везде и при новом посте Старый юзер с правильно определившимся флажком тоже приобретает Флаг с US.
Не могу понять весь скрипт проверил все как ставил так и стоит.
Может проблема в хостинге? или может что то нужно обновить в скрипте?
wipmania logo Alex 29 Авг 2009 21:08#1629Русский   
Проверил сайт и нашел причину - она не в моде, по видимому вы недавно поставили какой-то прокси или балансер перед сайтом, который не передает реальный адрес на бекенд. Соответственно форум видит всех пользователей под одним и тем же адресом - этого фронтенда (x.x.x.3)
Вы можете это проверить даже просто посмотрев администратором на посты пользователей и их IP адреса. Они везде будут одинаковыми.
Для исправления надо настроить на фронтенде передачу реального IP адреса далее.
К примеру для Nginx это делается через
proxy_set_header   X-Real-IP        $remote_addr;

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

Аноним/Имя OpenID OpenID Yahoo! OpenID AOL WordPress LiveJournal Technorati TypePad Vox Myvidoop Orange Yandex YandexBlog

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

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

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

, , , , , , , , , , , , , , , , , , , , , , , , , , ,

RSS OpenBlog (ru)

Все темы: 54 (18 на русском)

Alex (30)

Olga (12)

Andreas (15)

Ожидаемые к выпуску статьи:

"База хостинговых компаний и датацентров, прокси, поисковых ботов и всех сателлитных провайдеров"

Creative Commons License
Creative Commons Attribution-Noncommercial 3.0 License