Аналитика посещаемости сервера 0.1с

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
123
Реакции
32
Помог
4 раз(а)
Ошибка
ошибок плагина нет Аналитика посещаемости сервера 0.1с
ОС
Linux
Билд
ReHlds-3.3.0.607-dev_gcc
ReGamedll
ReGameDLL version: 5.3.0.222-dev
Список метамодулей
[ 1] Reunion          RUN   -    reunion_mm_i386.  v0.1.75   ini   Start Never
[ 2] AMX Mod X RUN - amxmodx_mm_i386. v1.8.2 ini Start ANY
[ 3] Rechecker RUN - rechecker_mm_i38 v2.4 ini Chlvl ANY
[ 4] ReSemiclip RUN - resemiclip_mm_i3 v2.3.8 ini Chlvl ANY
[ 5] VoiceTranscoder RUN - VoiceTranscoder. v2017RC3 ini ANY ANY
[ 6] WHBlocker RUN - whblocker_mm_i38 v1.5.692 ini Chlvl ANY
[ 7] ProcessCmds RUN - processcmds_mm_i v1.1.3 ini Start Never
[ 8] ReSRDetector RUN - resrdetector_mm_ v0.1.0 ini Chlvl ANY
[ 9] ReAimDetector RUN - reaimdetector_am v0.1.6 pl2 ANY Never
[10] ReAPI RUN - reapi_amxx_i386. v5.2.0.1 pl2 ANY Never
[11] FakeMeta RUN - fakemeta_amxx_i3 v1.8.2 pl2 ANY ANY
[12] MySQL RUN - mysql_amxx_i386. v1.8.2 pl2 ANY ANY
[13] Engine RUN - engine_amxx_i386 v1.8.2 pl2 ANY ANY
[14] CSX RUN - csx_amxx_i386.so v1.8.2 pl2 ANY ANY
[15] Ham Sandwich RUN - hamsandwich_amxx v1.8.2 pl2 ANY ANY
[16] CStrike RUN - cstrike_amxx_i38 v1.8.2-d pl2 ANY ANY
[17] Fun RUN - fun_amxx_i386.so v1.8.2 pl2 ANY ANY
17 plugins, 17 running
Список плагинов
[  1] ReAimDetector API       0.1.6/1     ReHLDS Team       reaimdetector.a  running  
[ 2] unknown unknown unknown soon.amxx running
[ 3] Admin ESP 1.5b_mini KoST admin_esp_mini. running
[ 4] UFPS VoteBan 1.5 UFPS.Team voteban.amxx running
[ 5] AMXBans: Core MA 1.6.7 Larte Team amxbans_core.am running
[ 6] AMXBans: Main MA 1.6.7 Larte Team amxbans_main.am running
[ 7] Stats Configuration 15.07.15 SKAJIbnEJIb & AM statscfg_rbs.am running
[ 8] StatsX RBS 15.07.24 SKAJIbnEJIb & AM statsx_rbs.amxx running
[ 9] CsStats MySQL 15.07.15 SKAJIbnEJIb csstats_mysql.a running
[ 10] Army Ranks Ultimate 15.07.24 SKAJIbnEJIb army_ranks_ulti running
[ 11] TimeLeft 15.07.15 SKAJIbnEJIb & AM timeleft.amxx running
[ 12] NextMap 15.07.15 SKAJIbnEJIb & AM nextmap.amxx running
[ 13] MapChooser RBS 15.07.15 SKAJIbnEJIb & UF mapchooser_rbs. running
[ 14] Auto Team Balance Adva 1.4.7 Radius auto_team_balan running
[ 15] [182] VIP RBS 17.09.28BE SKAJIbnEJIb vip_rbs.amxx running
[ 16] Bonus Time RBS 15.07.15 SKAJIbnEJIb bonustime_rbs.a running
[ 17] Menus Front-End 15.07.15 AMXX Dev Team & amxmodmenu_rbs. running
[ 18] Steam Bonus 1.1 ill+F@nToM steam_bonus.amx running
[ 19] [182] Ultimate Knife 17.06.26BE SKAJIbnEJIb ultimate_knife. running
[ 20] BlindEffect 1.0 defa blind_effect.am running
[ 21] AFK Kicker RBS 16.11.25 SKAJIbnEJIb afkkicker_rbs.a running
[ 22] Anti Flood 1.8.2 AMXX Dev Team antiflood.amxx running
[ 23] Admin Commands 1.8.2 AMXX Dev Team admincmd.amxx running
[ 24] Admin Votes 1.8.2 AMXX Dev Team adminvote.amxx running
[ 25] Admin Chat 1.8.M AMXX Dev Team adminchat.amxx running
[ 26] Commands Menu 1.8.2 AMXX Dev Team cmdmenu.amxx running
[ 27] Info. Messages 1.8.2 AMXX Dev Team imessage.amxx running
[ 28] Maps Menu 1.8.2 AMXX Dev Team mapsmenu.amxx running
[ 29] Multi-Lingual System 1.8.2 AMXX Dev Team multilingual.am running
[ 30] Pause Plugins 1.8.2 AMXX Dev Team pausecfg.amxx running
[ 31] Players Menu 1.8.M AMXX Dev Team plmenu.amxx running
[ 32] Restrict Weapons 1.8.2 AMXX Dev Team restmenu.amxx running
[ 33] Scrolling Message 1.8.2 AMXX Dev Team scrollmsg.amxx running
[ 34] Plugin Menu 1.8.2 AMXX Dev Team pluginmenu.amxx running
[ 35] Recoil Control 1.5 OT recoil_control. running
[ 36] Mode 2x2 1.9 s1lent mode.amxx running
[ 37] No fall damage 0.1 s1lent no_fall_damage. running
[ 38] 'Fire in the hole' blo 1.0 xPaw hidefireintheho running
[ 39] Weapon Model + Sound R 1.3 GHW_Chronic GHW_Weapon_Repl running
[ 40] Screen Player Beta RBT screen_player.a running
[ 41] Reset Score 1.0 SKAJIbnEJIb resetscore_rbs. running
[ 42] Map Spawns Editor 1.0.16 iG_os map_spawns_edit running
[ 43] Players Logger 0.1с wopox1337 Players_Logger. running
[ 44] Lite Recoder 1.0.1 neygomon lite_recoder.am running
[ 45] High Ping Kicker 1.0 Shadow/Bo0m! amx_hpk.amxx running
[ 46] Ultimate Gag 15.07.15 SKAJIbnEJIb ultimate_gag.am running
[ 47] Autoresponder/Advertis 0.5 MaximusBrood ad_manager.amxx running
[ 48] Chat RBS 15.09.24 SKAJIbnEJIb chat_rbs.amxx running
[ 49] [ReAPI] No Team Flash 1.0 ReHLDS Team noteamflash.amx running
[ 50] AMXBans: Flagged Gm 1.6 Larte Team amxbans_flagged running
[ 51] AMXBans: Screens Gm 1.6 Larte Team amxbans_ssban.a running
51 plugins, 51 running
Исходный код
#include <amxmodx>
#include <amxmisc>
#include <reapi>

// Добавлять к статистике информацию о стране?
#define ADD_COUNTRY

const AUTHID_MAX_LEN = 32;
#if !defined MAX_NAME_LENGTH
const MAX_NAME_LENGTH = 32;
#endif
const MAX_IP_LEN = 22;

new g_szLogsFile[128];

#if defined ADD_COUNTRY
#include <geoip>
#endif

new const g_szAuthType[client_auth_type][] =
{
"NONE", "DPROTO",
"STEAM", "STEAMEMU",
"REVEMU", "OLDREVEMU",
"HLTV", "SC2009",
"AVSMP", "SXEI",
"REVEMU2013", "SSE3"
}

public plugin_precache()
{
register_plugin("Players Logger", "0.1с", "wopox1337");

get_basedir(g_szLogsFile, charsmax(g_szLogsFile));
add(g_szLogsFile, charsmax(g_szLogsFile), "/logs");

/*
//Header
#if defined ADD_COUNTRY
Log_to_csv(g_szLogsFile,
"Name, IP, AuthId, Protocol, AuthType, Country"
);
#else
Log_to_csv(g_szLogsFile,
"Name, IP, AuthId, Protocol, AuthType"
);
#endif
*/
}

public client_authorized(pPlayer)
{
if(is_user_bot(pPlayer))
return;

static
szAuthId[AUTHID_MAX_LEN],

iProtocol,
client_auth_type: AuthType,

#if defined ADD_COUNTRY
szCountry[64],
#endif
szIP[MAX_IP_LEN];

get_user_authid(pPlayer, szAuthId, AUTHID_MAX_LEN - 1);

iProtocol = REU_GetProtocol(pPlayer);
AuthType = REU_GetAuthtype(pPlayer);

// get_user_name(pPlayer, szName, MAX_NAME_LENGTH - 1);
get_user_ip(pPlayer, szIP, MAX_IP_LEN - 1, .without_port = true);

#if defined ADD_COUNTRY
geoip_country_ex(szIP, szCountry, charsmax(szCountry));
if(!szCountry[0]) formatex(szCountry, charsmax(szCountry), "[ UNKNOWN ]");

Log_to_csv(g_szLogsFile, " ,%s, %s, %i, %s, %s",
szIP, szAuthId, iProtocol, g_szAuthType[AuthType], szCountry
);
#else
Log_to_csv(g_szLogsFile, " ,%s, %s, %i, %s",
szIP, szAuthId, iProtocol, g_szAuthType[AuthType]
);
#endif
}

stock Log_to_csv(const szLogsDir[], const Message[], any:...) {
new szMsg[512], szTime[22], szFile[128], pFile;

vformat(szMsg, charsmax(szMsg), Message, 3);
get_time("pl_%Y%m%d.csv", szTime, charsmax(szTime));
formatex(szFile, charsmax(szFile), "%s/%s", szLogsDir, szTime);
// formatex(szFile, charsmax(szFile), "%s/%s", szLogsDir, "STATS.csv");
pFile = fopen(szFile, "at");
fprintf(pFile, "%s^n", szMsg);
fclose(pFile);

// server_print("saved to: '%s'", szFile);
}
у аналитика серверов некоторые страны не показывает, кто знает в чем причина может быть? Базу geoip поменял как в описании было
,37.150.225.177, STEAM_5:1:1148368097, 48, REVEMU, error
,95.25.90.222, STEAM_0:0:69781949, 48, STEAM, error
,78.85.5.83, STEAM_5:0:383168374, 48, REVEMU, Russian Federation
,78.85.5.83, STEAM_5:0:383168374, 48, REVEMU, Russian Federation
,77.122.244.68, STEAM_5:0:1507750671, 48, REVEMU, Ukraine
,94.233.225.156, STEAM_5:0:1080403513, 48, REVEMU, error
,94.233.225.156, STEAM_5:0:1080403513, 48, REVEMU, error
,95.70.16.93, STEAM_5:1:1529050680, 48, REVEMU, error
,37.150.225.177, STEAM_5:1:1148368097, 48, REVEMU, error
,77.122.244.68, STEAM_6:0:846017906, 48, STEAMEMU, Ukraine
,176.114.189.64, STEAM_5:1:1217375489, 48, REVEMU, error
,176.114.189.64, STEAM_5:1:1217375489, 48, REVEMU, error
,2.94.88.9, STEAM_5:0:1272351971, 48, REVEMU, error
 
В этой теме было размещено решение! Перейти к решению.
Сообщения
957
Реакции
1,185
Помог
52 раз(а)
Если в базе Geoip нет данных по данной сети, то он и не сможет задетектить географию.
 
Сообщения
123
Реакции
32
Помог
4 раз(а)
Sonyx, как то можно решить эту проблемму?
 
Сообщения
957
Реакции
1,185
Помог
52 раз(а)
Gudaus, должен, но сделано условие некорректно, по-моему.
Будет работать так:

Код:
if(!geoip_country_ex(szIP, szCountry, charsmax(szCountry)))
    formatex(szCountry, charsmax(szCountry), "[ UNKNOWN ]");
Krot, только поиском свежих баз гео, либо вручную добавляйте инфу о данных сетях
 
Сообщения
123
Реакции
32
Помог
4 раз(а)
Если вы правили плагин, то выкладывайте уже правленую версию, а не оригинал
wopox1337, да работает только на 1.8.3 , но если на 76 строчке поменять geoip_country_ex на geoip_country то будет и на 1.8.2
 
Сообщения
2,722
Реакции
2,997
Помог
60 раз(а)
geoip_country_ex на geoip_country
а я гарантировал вам полную работоспособность при ваших внесённых изменениях? Как только вы меняете код - с меня ответственность за вами содеянное - снимается.
29 Дек 2017
код от geoip_country:
// Deprecated.
Код:
// native geoip_country(const ip[], result[], len = 45);
// Deprecated.
static cell AMX_NATIVE_CALL amx_geoip_country(AMX *amx, cell *params)
{
    int length;
    char *ip = stripPort(MF_GetAmxString(amx, params[1], 0, &length));

    const char *path[] = { "country", "names", "en", NULL };
    const char *country = lookupString(ip, path, &length);

-    if (!country)
-    {
-        return MF_SetAmxString(amx, params[2], "error", params[3]);
-    }

    return MF_SetAmxStringUTF8Char(amx, params[2], country, length, params[3]);
}
код от geoip_country_ex - актуальный для 1.8.3
Код:
// native geoip_country_ex(const ip[], result[], len, id = -1);
static cell AMX_NATIVE_CALL amx_geoip_country_ex(AMX *amx, cell *params)
{
    int length;
    char *ip = stripPort(MF_GetAmxString(amx, params[1], 0, &length));

    const char *path[] = { "country", "names", getLang(params[4]), NULL };
    const char *country = lookupString(ip, path, &length);

    return MF_SetAmxStringUTF8Char(amx, params[2], country ? country : "", length, params[3]);
}
Но, я не поддерживаю более 1.8.2, так что - это на ваших плечах.
29 Дек 2017
Код:
if(!szCountry[0] || szCountry[0] == 'e')
- для самых отважных, и не пробиваемых. :dntknw:
 
Последнее редактирование:
Сообщения
2,491
Реакции
2,791
Помог
61 раз(а)
Diff:
- geoip_country_ex(szIP, szCountry, charsmax(szCountry));
- if(!szCountry[0]) formatex(szCountry, charsmax(szCountry), "[ UNKNOWN ]");
+ #if AMXX_VERSION_NUM < 183
+ if (geoip_country(szIP, szCountry, charsmax(szCountry)) == 5 && szCountry[0] == 'e')
+ #else
+ if (geoip_country_ex(szIP, szCountry, charsmax(szCountry)) == 0)
+ #endif    
+ {
+     formatex(szCountry, charsmax(szCountry), "[ UNKNOWN ]")
+ }
 
Сообщения
123
Реакции
32
Помог
4 раз(а)
fantom, eror на unknown поменялось) но все равно спасибо
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу