Местоположен​ие пользователя​

B

Bustra

Гость
#1
Автор мода: Wertos
Описание: Маленький мод который определяет местоположение пользователя по его IP адресу.
Мод использует базу GeoLiteCity.
PHP:
#
#---------------[ Open ]-----------------------------------------------------------------
#
attach_mod/displaying_torrent.php
 
#
#----------------[ FIND ]----------------------------------------------------------------
#
 
if (!defined('IN_PHPBB')) die(basename(__FILE__));
#
#----------------[ AFTER ADD ]-----------------------------------------------------------
#
include_once('data/geoipcity.inc');
 
#
#----------------[ FIND ]----------------------------------------------------------------
#
        if ($s_mode == 'full')
        {
          $ip    = bt_show_ip($peer['ip']);
 
#
#----------------[ AFTER ADD ]-----------------------------------------------------------
#
 
      $gi = geoip_open("attach_mod/data/GeoLiteCity.dat", GEOIP_STANDARD);
$res = GeoIP_record_by_addr($gi, $ip);
geoip_close($gi);
$city = (@$res->city) ? $res->city : 'Unknow';
$region = (@$res->country_code) ? '<img title="Город: '.$city.'" src="images/country/'.$res->country_code.'0.gif" align="absmiddle">' : 'Unknow';
 
 
#
#----------------[ FIND ]----------------------------------------------------------------
#
$template->assign_block_vars("$x_full.$x_row", array(
 
#
#----------------[ AFTER ADD ]-----------------------------------------------------------
#
            'REGION'      => $region,
 
#
#---------------[ Open ]-----------------------------------------------------------------
#
templates/default/viewtopic_torrent.tpl
 
#
#----------------[ FIND ]----------------------------------------------------------------
#
<th class="{sorter: 'text'}"><b class="tbs-text">{L_DL_USER}</b><img width="130" class="spacer" src="{SPACER}" alt="" /></th>
 
#
#----------------[ AFTER ADD ]-----------------------------------------------------------
#
<th><b>Регион</b><img width="50" class="spacer" src="{SPACER}" title="" /></td>
 
#
#----------------[ FIND ]----------------------------------------------------------------
#
<td class="tLeft" title="{sfull.srow.UPD_EXP_TIME}"><b>{sfull.srow.NAME}</b></td>
 
#
#----------------[ AFTER ADD ]-----------------------------------------------------------
#
 
<td class="bCenter">{sfull.srow.REGION}</td>
 
#
#----------------[ FIND ]----------------------------------------------------------------
#
<th class="{sorter: 'text'}"><b class="tbs-text">{L_DL_USER}</b><img width="130" class="spacer" src="{SPACER}" alt="" /></th>
 
#
#----------------[ AFTER ADD ]-----------------------------------------------------------
#
<th><b>Регион</b><img width="50" class="spacer" src="{SPACER}" title="" /></td>
 
#
#----------------[ FIND ]----------------------------------------------------------------
#
<td class="tLeft" title="{lfull.lrow.UPD_EXP_TIME}"><b>{lfull.lrow.NAME}</b></td>
 
#
#----------------[ AFTER ADD ]-----------------------------------------------------------
#
<td class="bCenter">{lfull.lrow.REGION}</td>
 
######################################## [ EOM] ###############################################

Please Login or Register to view hidden text.

-База GeoLiteCity
 
B

Bustra

Гость
#4
решил поставить проверить. Все работает только ошибка есть. Notice: Undefined variable: ip in attach_mod/displaying_torrent.php on line 444
 
B

Bustra

Гость
#5
Не видел переменную $ip .Решение такое . Найти
PHP:
$ip    = bt_show_ip($peer['ip']);         
$port  = bt_show_port($peer['port']);
после вставить
PHP:
$gi = geoip_open("attach_mod/data/GeoLiteCity.dat", GEOIP_STANDARD);
                    $res = GeoIP_record_by_addr($gi, $ip);
                    geoip_close($gi);
                    $city = (@$res->city) ? $res->city : 'Unknow';
                    $region = (@$res->country_code) ? '<img title="Город: '.$city.'" src="images/country/'.$res->country_code.'0.gif" align="absmiddle">' : 'Unknow';
Все работает как часы =)
 

Lange

Пользователь
#6
На первом тп, выскакивала ошибка, когда юзер анкноун, то был нотис:(
 
B

Bustra

Гость
#7
Locer, помню такое было, кривая база GeoLiteCity была, это от 12 апреля этого года. Нашёл в инете ее.. Поставь проверь, заодно узнаем работает или нет.У себя поставил все нормально.
 

killer

Пользователь
#9
Locer, помню такое было, кривая база GeoLiteCity была, это от 12 апреля этого года. Нашёл в инете ее.. Поставь проверь, заодно узнаем работает или нет.У себя поставил все нормально.
Я у себя поставил работает. Спасибо! Мне нравится.
 

Lange

Пользователь
#10
Кстати, здесь на английском пишется откуда качают? А для анонимов тестировали?
 
Сверху