1 (edited by PunBB 2018.03.10 17:25)

Topic: Pan IP Geolocation: Определение местоположения пользователя по IP

Расширение определяет местоположения пользователя по IP адресу и отображает нахождение на карте в профиле
На главной странице профиля отображается карта с координатами зарегистрированного пользователя.
Информация видна только админу.

https://punbb.softplaza.net/uploads/images/2017/02/15/screenshot.2017-02-14_23.57.48.png


Скачать расширение IP Geolocation

2

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

Клевое расширение! Благодарю!  Default/bo

PunBB wrote:

На главной странице профиля отображается карта с координатами зарегистрированного пользователя.
Информация видна только админу.

Кстати, информацию можно же открыть и для модераторов также? Дело в том, что спамеры заходят на форум со всего мира, а особенно из США и из Китая. Я просто хотел, чтобы модераторы тоже были в курсе из какого региона  пришел спамер.

3

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

fluder wrote:

можно же открыть и для модераторов также

Конечно можно. Напишите автору может ему это предложение понравится и добавит такую функцию.

4

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

PunBB, у меня тоже есть предложение по данному расширению. Определение местоположения пользователя по IP это очень здорово, хотя не всегда точно определяет его местонахождение. Я к чему это... в профиле пользователя есть поле Местоположение, но дело в том, что людям лень писать откуда они есть.
Было бы здорово, если бы скрипт как то автоматически заполнял это поле. Скажите, а почему вы не можете сделать похожее расширение, но только свое, чтобы не зависеть от автора?

5

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

olimpic wrote:

Скажите, а почему вы не можете сделать похожее расширение, но только свое, чтобы не зависеть от автора?

Можно то оно можно, вот только зачем плодить кучу расширений похожих друг на друга   Default/bn
А так идея очень даже не плохая. Только кто бы взялся за написание базы стран, чтобы адекватные названия вставляло?

6

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

Ну вот, сразу идеи все куда то подевались...  Default/ap

7

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

Обновлено расширение. Совместимость с PanBB 1.4.5

8

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

Врёт безбожно. Из трёх раз три мимо. Киев Днепропетровской области и показываение центра Днепра - это  вообще ярко  PunBB_INFO_ICQ/bigsmile  Насколько помню, в ту же область и с той же картинкой оно показывало город Белая Церковь.

Мужик в Зеленограде под Москвой, все геолокейшн показывают нормально, а эта - Липецк.

$matches[2]

Точно показывают эти сервисы у меня (вручную):
http://speed-tester.info/ip_location.php
https://2ip.ru/geoip/
И то, иногда путаются в показаниях, один врёт, другой - нет.

9

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

kisa wrote:

Точно показывают эти сервисы у меня

Их можно как то интегрировать?  PunBB_INFO_ICQ/scratch

10

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

А разве эти сервисы в принципе могут работать точно? У нас в стране, например, все под NAT'ом сидят. Были бы статические IP-адреса у всех - тогда бы по идее показывало точное местоположение.

11

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

PunBB, А я знаю?  PunBB_INFO_ICQ/bigsmile
Grand91, у меня на форуме большинство народу не выделывается, и сидят на своём честном провайдерском IP. Оно работает быстрее, а прятаться ни к чему. Мало того, за висением под ВПН замечены нехорошие личности. Это тоже признак.

12

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

kisa, я не сильно в сетях разбираюсь, поэтому могу напутать в терминологии. Но я не про VPN, а про NAT. В Беларуси все "честные провайдеровские IP" спрятаны за NAT'ом  PunBB_INFO_ICQ/smile Думаю, мы в этом не одиноки.

13

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

PunBB_INFO_ICQ/bigsmile А нам домашний адрес не особо нужен, обычно, чтобы сориентироваться, города и провайдера хватает, в этом я проблемы никакой не вижу, как раз достаточно. Вот если за ВПН - это что-то мутное.

14

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

kisa wrote:

города и провайдера хватает

У нас почти всегда показывает местоположение дата-центра (или как это называется правильно), который находится в Минске, а не город пользователя  PunBB_INFO_ICQ/pardon

15

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

PunBB wrote:

как то интегрировать? 

PunBB_INFO_ICQ/cool https://2ip.ua/ru/api/our-api

16

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

PunBB_INFO_ICQ/thumbsup где поток регистраций на форуме небольшой, то имеет смысл реализовать.

10 запросов в день — бесплатно (кроме Email API, для него только 2 запроса в день бесплатно).

17

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

Дык, запросы к их базе нужно делать не автоматом, а по запросу модератора по кнопке, когда реально надо пробить подозрительного. В масштабах моего форума, это 1 - 5 запросов в месяц. Есть, куда расти  PunBB_INFO_ICQ/bigsmile
Если реальная необходимость превысит, можно только части наиболее ответственных модераторов дать этот инструмент.

Хрен с ней, с позицией на карте (хотя прикольно, безусловно), просто автоматизировать через кнопочку обычный для этого процесс:
Скопировать адрес, открыть тот сайт, вставить адрес, нажать кнопку у них.

18 (edited by kirpich 2020.01.09 03:19)

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

Так у старого только карту не показывает, а геолокация-то работает вроде нормально, населенный пункт пишется.

19

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

Ну как нормально... https://punbb.softplaza.net/post7512.html#p7512  PunBB_INFO_ICQ/bigsmile

20

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

Вот типо хакер 9298345094.
PunBB_INFO_ICQ/thumbsup

21

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

В архиве чего-то нехватает... Обычно больше файлов в архиве.
Карта в профиле не отображается.

22 (edited by PunBB 2020.09.22 16:47)

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

Там ничего особенного, только ссылка в манифесте на сторонний сервис у которого сейчас траблы, в этом то и недостаток использования внешних сайтов

1

23 (edited by kirpich 2020.09.22 22:45)

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

@belelectroteam, там гуглокарта, но уже давненько гугл просит денег за запросы подобного характера. А сервис который стоит промеж гугла и тобой, тоже хочет денег.  Там в коде есть уникальный ключ клиента, можно попробовать на свой аккаунт поменять. Давненько как-то смотрел код, точно не помню в каком месте, но найдешь....

24

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

Да. Точно. Там прямо в файле надо пришить параметры и карты и промежуточного сервиса.
Ссылки очень старые - http еще.
Настройка расширения из-за этого затруднительна.
Но что-нибудь придумаем. Мы пока расширение отключили.

25

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

Great extension but the map picture no longer displays.

The geo location part works excellent though.

I get this..

https://i.postimg.cc/MpGH80wN/Picture0011.png

How can I fix it or how can I remove the image placeholder?

Also, is there a way to redo the geolocation once you run it on a member?

26

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

@KamWest, I heard that developer do not support that extension anymore... PunBB_INFO_ICQ/pardon

27

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

Thank you, I guess I can always hide that placeholder using css and I know how to do that.

1

28 (edited by kirpich 2021.03.11 11:51)

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

KamWest wrote:

Great extension but the map picture no longer displays.

Google only provides a limited number of free requests, you need to have your own api key to get images.
Google Maps API Key  PunBB_INFO_ICQ/write   https://developers.google.com/maps/docu … -key?hl=en

29 (edited by KamWest 2021.03.13 07:02)

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

Got a key, where do I put it in the plugin?

$matches[2]

Never mind, I just removed that part of the hook

Now all it shows is a link to geo locate.

After I click that it shows the location.

The part of the hook I removed from the manifest.xml removed the map picture and the link to the name extension.
Both are not required anyways so now the geolocate is a nice small and tight extension and just the way I want it.


The entire part in the image below is what I removed from the extension

https://i.postimg.cc/XvB7QHT0/Picture0004.png


This is what I kept

https://i.postimg.cc/8c00KH2q/Picture0006.png


I mean.... do I really need a picture to tell me where Belarus is  PunBB_INFO_ICQ/bigsmile

2

30

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

PunBB_INFO_ICQ/smile Good job  PunBB_INFO_ICQ/thumbsup . Can you attach your modified extension please. Thx

31 (edited by KamWest 2021.03.16 14:10)

Re: Pan IP Geolocation: Определение местоположения пользователя по IP

This is how my manifest.xml file looks now and it works perfectly.

In fact I like it better because the map and the extension link were both not necessary.



<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE extension SYSTEM "ext-1.0.dtd">

<extension engine="1.0">
   <id>pan_ip_geolocation</id>
   <title>Pan IP Geolocation</title>
   <version>1.5</version>
   <description>Displays IP Geolocation (to Administrators only) in user profiles</description>
   <author>Justice adapter PunBB.info</author>

   <minversion>1.4.4</minversion>
   <maxtestedon>1.4.5</maxtestedon>

   <install><![CDATA[
$forum_db->add_field('users', 'ip_geolocation', 'VARCHAR(40)', TRUE);
   ]]></install>

   <uninstall><![CDATA[
$forum_db->drop_field('users', 'ip_geolocation');
   ]]></uninstall>

   <hooks>
      
      <hook id="pf_start, mi_start"><![CDATA[
// Load the extention language file
if (file_exists($ext_info['path'].'/lang/'.$forum_user['language'].'.php'))
   require $ext_info['path'].'/lang/'.$forum_user['language'].'.php';
else
   require $ext_info['path'].'/lang/English.php';
      ]]></hook>
      
      <hook id="pf_change_details_about_pre_header_load"><![CDATA[
if ($forum_user['is_admmod']) {
   if ($user['ip_geolocation'] == '') {
      $forum_page['user_private']['ip_geolocation'] = '<li><span>'.$lang_ip_geolocation['IP Geolocation'].': <a href="'.forum_link('misc.php?geolocate=$1', $id).'">'.$lang_ip_geolocation['Geolocate'].'</a></span></li>';
   } else {
      $forum_page['user_private']['ip_geolocation'] = '<li><span>'.$lang_ip_geolocation['IP Geolocation'].': <strong>'.forum_htmlencode($user['ip_geolocation']).'</strong></span></li>';
      
   }
}
      ]]></hook>
      
      <hook id="rg_register_pre_add_user"><![CDATA[
$user_info['ip_geolocation'] = get_geolocation($user_info['registration_ip']);
      ]]></hook>
      
      <hook id="fn_add_user_qr_insert_user"><![CDATA[
$query['INSERT'] .= ', ip_geolocation';
$query['VALUES'] .= (isset($user_info['ip_geolocation']) && $user_info['ip_geolocation'] != '') ? ', \''.$forum_db->escape($user_info['ip_geolocation']).'\'' : ', \'N/A\'';

// Temporarily set notify_admins to false
$notify_admins_orig = $user_info['notify_admins'];
$user_info['notify_admins'] = false;
      ]]></hook>
      
      <hook id="co_common"><![CDATA[
// Get geographic location by IP address using GeoPlugin
function get_geolocation($user_ip) {
   $geoplugin_response = get_remote_file('http://www.geoplugin.net/php.gp?ip='.$user_ip,8);
   $geoplugin_content = unserialize($geoplugin_response['content']);
   $geoplugin_region = trim($geoplugin_content['geoplugin_region']);
   $geoplugin_city = trim($geoplugin_content['geoplugin_city']);
   $geoplugin_country = trim($geoplugin_content['geoplugin_countryName']);
   
   return implode(', ', preg_split('/,/',$geoplugin_city . ',' . $geoplugin_region . ',' . $geoplugin_country, -1, PREG_SPLIT_NO_EMPTY));
}
      ]]></hook>
      
      <hook id="fn_add_user_end"><![CDATA[
if ($notify_admins_orig && $forum_config['o_mailing_list'] != '')
{
   $mail_subject = 'Alert - New registration';
   $mail_message = 'User \''.$user_info['username'].'\' registered in the forums at '.$base_url.'/'."\n\n".'User profile: '.forum_link($forum_url['user'], $new_uid)."\n\n".'IP Geolocation: '.$user_info['ip_geolocation']."\n\n".'-- '."\n".'Forum Mailer'."\n".'(Do not reply to this message)';

   forum_mail($forum_config['o_mailing_list'], $mail_subject, $mail_message);
}

// Restore original value of notify_admins
$user_info['notify_admins'] = $notify_admins_orig;
      ]]></hook>
      
      <hook id="mi_new_action"><![CDATA[
// Geolocate user
if (isset($_GET['geolocate'])) {
   $geolocate_id = intval($_GET['geolocate']);
   if ($geolocate_id < 2)
      message($lang_common['Bad request']);

   $query = array(
      'SELECT'   => 'u.registration_ip',
      'FROM'      => 'users AS u',
      'WHERE'      => 'u.id='.$geolocate_id
   );

   $result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
   if (!$forum_db->num_rows($result))
      message($lang_common['Bad request']);

   $user_geolocation = get_geolocation($forum_db->result($result));

   // Set the user's geolocation
   $query = array(
      'UPDATE'   => 'users',
      'SET'      => 'ip_geolocation=\''.$forum_db->escape($user_geolocation != '' ? $user_geolocation : 'N/A').'\'',
      'WHERE'      => 'id='.$geolocate_id,
   );
   $forum_db->query_build($query) or error(__FILE__, __LINE__);

   redirect(forum_link($forum_url['user'], $geolocate_id), $lang_ip_geolocation['Geolocate redirect']);
}
      ]]></hook>
      
   </hooks>
   
</extension>