Редакция на Plugins-ProxyDetected

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
Just
Извън линия
Потребител
Потребител
Мнения: 427
Регистриран на: 23 Дек 2016, 19:10
Местоположение: http://cs-ultragaming.info
Се отблагодари: 5 пъти
Получена благодарност: 34 пъти
Обратна връзка:

Редакция на Plugins-ProxyDetected

Мнение от Just » 06 Май 2020, 05:27

Малка редакция да се направи + да му се добави нова функция
ProxyDetector.sma
(663 Байта) Свалено 119 пъти
ProxyDetector.sma
(663 Байта) Свалено 119 пъти
Ето сма фаила и нужната функция която да се добави във пългина

Код за потвърждение: Избери целия код

if(!file_exists(szFile)) {
        new szRequest[68];
        formatex(szRequest, charsmax(szRequest), "http://proxy.mind-media.com/block/proxycheck.php?ip=%s", szIP);
        HTTPX_Download(szRequest, szFile, "DownloadComplete", _, _, REQUEST_GET);

Тъй като я няма тази функция вътре и не засича кой е с VPN
Изображение


NEW CS 1.6 SERVERS IP: 45.144.155.176:27015

Изображение

Аватар
hackera457
Извън линия
Модератор
Модератор
Мнения: 768
Регистриран на: 01 Ное 2016, 09:46
Местоположение: София
Се отблагодари: 1 път
Получена благодарност: 124 пъти
Обратна връзка:

Редакция на Plugins-ProxyDetected

Мнение от hackera457 » 06 Май 2020, 16:01

А защо просто не ползваш това

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <httpx>

//#define USE_ADDIP_CMD

#define IP_LENGTH 16

#if !defined PLATFORM_MAX_PATH
    #define PLATFORM_MAX_PATH 256
#endif

new g_szDataDir[PLATFORM_MAX_PATH];
new g_hVault = INVALID_HANDLE;

public plugin_init()
{
    register_plugin("Proxy/VPN check", "2", "s7amb370");
    register_concmd("proxy_acceptip", "cmdAcceptIP", ADMIN_LEVEL_G, "<ip_address>")
    register_concmd("proxy_denyip", "cmdDenyIP", ADMIN_LEVEL_G, "<ip_address>")
}

public cmdDenyIP(id, level, cid)
{
  if (!cmd_access(id, level, cid, 2))
    return PLUGIN_HANDLED

  new szIP[32];
  read_argv(1, szIP, charsmax(szIP))

  #if defined USE_ADDIP_CMD
  new data = nvault_get(g_hVault, szIP);
  if(data && data == 2)
  {
		server_cmd("addip ^"%s^";writeip", szIp)
    console_print(id, "[ProxyCheck] %s was added to banlist.", szIP);
  }
  #endif
  console_print(id, "[ProxyCheck] %s is now blacklisted.", szIP);
  nvault_set(g_hVault, szIP, "1");

  return PLUGIN_HANDLED;
}
public cmdAcceptIP(id, level, cid)
{
  if (!cmd_access(id, level, cid, 2))
    return PLUGIN_HANDLED

  new szIP[32];
  read_argv(1, szIP, charsmax(szIP))

  #if defined USE_ADDIP_CMD
  new data = nvault_get(g_hVault, szIP);
  if(data && data == 1)
  {
		server_cmd("removeip ^"%s^";writeip", szIp)
    console_print(id, "[ProxyCheck] %s was removed from banlist.", szIP);
  }
  #endif
  console_print(id, "[ProxyCheck] %s is now whitelisted.", szIP);
  nvault_set(g_hVault, szIP, "2");

  return PLUGIN_HANDLED;
}

public plugin_cfg() {
    g_hVault = nvault_open("proxycheck");

    if(g_hVault == INVALID_HANDLE) {
        set_fail_state("Error opening nVault!");
        return;
    }

    get_localinfo("amxx_datadir", g_szDataDir, charsmax(g_szDataDir));
    add(g_szDataDir, charsmax(g_szDataDir), "/proxycheck");

    if(!dir_exists(g_szDataDir)) {
        mkdir(g_szDataDir);
    }
}

public client_putinserver(id) { 
    if(is_user_bot(id) || is_user_hltv(id) || get_user_flags(id) & ADMIN_LEVEL_D) {  
        return;
    }

    new szIP[IP_LENGTH];
    get_user_ip(id, szIP, charsmax(szIP), .without_port = 1);

    if(equal(szIP, "loopback")) {
        return;
    }
    else {
        new szIPcopy[IP_LENGTH];
        copy(szIPcopy, charsmax(szIPcopy), szIP);
        replace_all(szIPcopy, charsmax(szIPcopy), ".", " ");

        new szFields[4][4];
        parse(szIPcopy, szFields[0], charsmax(szFields[]),
            szFields[1], charsmax(szFields[]),
            szFields[2], charsmax(szFields[]),
            szFields[3], charsmax(szFields[]));

        new address = (str_to_num(szFields[0]) << 24) |
            (str_to_num(szFields[1]) << 16) |
            (str_to_num(szFields[2]) << 8) |
            (str_to_num(szFields[3]));

        // Ignore private IPv4 address spaces
        if((address & 0xFF000000) == 0x0A000000 ||    //10.0.0.0/8
        (address & 0xFFF00000) == 0xAC100000 ||        //172.16.0.0/12
        (address & 0xFFFF0000) == 0xC0A80000)        //192.168.0.0/16
        {
            return;
        }
    }

    new data = nvault_get(g_hVault, szIP);

    if(data) {
        if(data == 1) {
            punish_player(id);
        }
        return;
    }

    new szFile[PLATFORM_MAX_PATH];
    formatex(szFile, charsmax(szFile), "%s/check_%s.txt", g_szDataDir, szIP);

    if(!file_exists(szFile)) {
        new szRequest[68];
        formatex(szRequest, charsmax(szRequest), "http://proxy.mind-media.com/block/proxycheck.php?ip=%s", szIP);
        HTTPX_Download(szRequest, szFile, "DownloadComplete", _, _, REQUEST_GET);
    }
}

public DownloadComplete(const download, const error) {
    new szFile[PLATFORM_MAX_PATH];
    HTTPX_GetFilename(download, szFile, charsmax(szFile));

    if(!error) {
        new file = fopen(szFile, "r");

        if(file) {
            new data[2];
            fgets(file, data, charsmax(data));

            if(data[0] == 'Y' || data[0] == 'N') {
                new pos_start = strfind(szFile, "check_", false, strlen(g_szDataDir));
                new pos_end = (pos_start == -1) ? -1 : strfind(szFile, ".txt", false, (pos_start += 6));

                if(pos_end != -1) {
                    new szIP[IP_LENGTH];
                    add(szIP, charsmax(szIP), szFile[pos_start], pos_end - pos_start);

                    if(data[0] == 'Y') {
                        new id = find_player("d", szIP);

                        if(id) {
                            punish_player(id);
                        }

                        nvault_set(g_hVault, szIP, "1");
                    #if defined USE_ADDIP_CMD
                        server_cmd("addip 0 %s;wait;writeip", szIP);
                    #endif
                    }
                    else {
                        nvault_set(g_hVault, szIP, "2");
                    }
                }
            }
            fclose(file);
        }
    }
    delete_file(szFile);
}

punish_player(id) {
    server_cmd("kick #%d ^"Proxy&VPN not allowed here for unregistered players! Register^"", get_user_userid(id));
}
Дори и да ти се добави кода, който искаш няма пак да работи плъгина напротив няма да се компилира, затова ползвай този код, който ти предоставих там я има въпросната функция
Моите плъгини

Код за потвърждение: Избери целия код

#include <hambeer>

RegisterHamBeer(HamBeer_Spawn, "player", "GivePlayerBeer", 1);

public GivePlayerBeer(Pl){
    if(!is_user_alive(Pl)){
        ham_give_beer(Pl, 5)
        client_print(Pl, print_chat, "Go Go Go"){
}  


Аватар
Just
Извън линия
Потребител
Потребител
Мнения: 427
Регистриран на: 23 Дек 2016, 19:10
Местоположение: http://cs-ultragaming.info
Се отблагодари: 5 пъти
Получена благодарност: 34 пъти
Обратна връзка:

Редакция на Plugins-ProxyDetected

Мнение от Just » 06 Май 2020, 17:18

Ще го тествам, и ще пиша ако има нещо.
Up. Не работи както си и знаех ето и снимка
Изображение

Добавено преди 38 минути 14 секунди:
hackera457 написа: 06 Май 2020, 16:01 А защо просто не ползваш това

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <httpx>

//#define USE_ADDIP_CMD

#define IP_LENGTH 16

#if !defined PLATFORM_MAX_PATH
    #define PLATFORM_MAX_PATH 256
#endif

new g_szDataDir[PLATFORM_MAX_PATH];
new g_hVault = INVALID_HANDLE;

public plugin_init()
{
    register_plugin("Proxy/VPN check", "2", "s7amb370");
    register_concmd("proxy_acceptip", "cmdAcceptIP", ADMIN_LEVEL_G, "<ip_address>")
    register_concmd("proxy_denyip", "cmdDenyIP", ADMIN_LEVEL_G, "<ip_address>")
}

public cmdDenyIP(id, level, cid)
{
  if (!cmd_access(id, level, cid, 2))
    return PLUGIN_HANDLED

  new szIP[32];
  read_argv(1, szIP, charsmax(szIP))

  #if defined USE_ADDIP_CMD
  new data = nvault_get(g_hVault, szIP);
  if(data && data == 2)
  {
		server_cmd("addip ^"%s^";writeip", szIp)
    console_print(id, "[ProxyCheck] %s was added to banlist.", szIP);
  }
  #endif
  console_print(id, "[ProxyCheck] %s is now blacklisted.", szIP);
  nvault_set(g_hVault, szIP, "1");

  return PLUGIN_HANDLED;
}
public cmdAcceptIP(id, level, cid)
{
  if (!cmd_access(id, level, cid, 2))
    return PLUGIN_HANDLED

  new szIP[32];
  read_argv(1, szIP, charsmax(szIP))

  #if defined USE_ADDIP_CMD
  new data = nvault_get(g_hVault, szIP);
  if(data && data == 1)
  {
		server_cmd("removeip ^"%s^";writeip", szIp)
    console_print(id, "[ProxyCheck] %s was removed from banlist.", szIP);
  }
  #endif
  console_print(id, "[ProxyCheck] %s is now whitelisted.", szIP);
  nvault_set(g_hVault, szIP, "2");

  return PLUGIN_HANDLED;
}

public plugin_cfg() {
    g_hVault = nvault_open("proxycheck");

    if(g_hVault == INVALID_HANDLE) {
        set_fail_state("Error opening nVault!");
        return;
    }

    get_localinfo("amxx_datadir", g_szDataDir, charsmax(g_szDataDir));
    add(g_szDataDir, charsmax(g_szDataDir), "/proxycheck");

    if(!dir_exists(g_szDataDir)) {
        mkdir(g_szDataDir);
    }
}

public client_putinserver(id) { 
    if(is_user_bot(id) || is_user_hltv(id) || get_user_flags(id) & ADMIN_LEVEL_D) {  
        return;
    }

    new szIP[IP_LENGTH];
    get_user_ip(id, szIP, charsmax(szIP), .without_port = 1);

    if(equal(szIP, "loopback")) {
        return;
    }
    else {
        new szIPcopy[IP_LENGTH];
        copy(szIPcopy, charsmax(szIPcopy), szIP);
        replace_all(szIPcopy, charsmax(szIPcopy), ".", " ");

        new szFields[4][4];
        parse(szIPcopy, szFields[0], charsmax(szFields[]),
            szFields[1], charsmax(szFields[]),
            szFields[2], charsmax(szFields[]),
            szFields[3], charsmax(szFields[]));

        new address = (str_to_num(szFields[0]) << 24) |
            (str_to_num(szFields[1]) << 16) |
            (str_to_num(szFields[2]) << 8) |
            (str_to_num(szFields[3]));

        // Ignore private IPv4 address spaces
        if((address & 0xFF000000) == 0x0A000000 ||    //10.0.0.0/8
        (address & 0xFFF00000) == 0xAC100000 ||        //172.16.0.0/12
        (address & 0xFFFF0000) == 0xC0A80000)        //192.168.0.0/16
        {
            return;
        }
    }

    new data = nvault_get(g_hVault, szIP);

    if(data) {
        if(data == 1) {
            punish_player(id);
        }
        return;
    }

    new szFile[PLATFORM_MAX_PATH];
    formatex(szFile, charsmax(szFile), "%s/check_%s.txt", g_szDataDir, szIP);

    if(!file_exists(szFile)) {
        new szRequest[68];
        formatex(szRequest, charsmax(szRequest), "http://proxy.mind-media.com/block/proxycheck.php?ip=%s", szIP);
        HTTPX_Download(szRequest, szFile, "DownloadComplete", _, _, REQUEST_GET);
    }
}

public DownloadComplete(const download, const error) {
    new szFile[PLATFORM_MAX_PATH];
    HTTPX_GetFilename(download, szFile, charsmax(szFile));

    if(!error) {
        new file = fopen(szFile, "r");

        if(file) {
            new data[2];
            fgets(file, data, charsmax(data));

            if(data[0] == 'Y' || data[0] == 'N') {
                new pos_start = strfind(szFile, "check_", false, strlen(g_szDataDir));
                new pos_end = (pos_start == -1) ? -1 : strfind(szFile, ".txt", false, (pos_start += 6));

                if(pos_end != -1) {
                    new szIP[IP_LENGTH];
                    add(szIP, charsmax(szIP), szFile[pos_start], pos_end - pos_start);

                    if(data[0] == 'Y') {
                        new id = find_player("d", szIP);

                        if(id) {
                            punish_player(id);
                        }

                        nvault_set(g_hVault, szIP, "1");
                    #if defined USE_ADDIP_CMD
                        server_cmd("addip 0 %s;wait;writeip", szIP);
                    #endif
                    }
                    else {
                        nvault_set(g_hVault, szIP, "2");
                    }
                }
            }
            fclose(file);
        }
    }
    delete_file(szFile);
}

punish_player(id) {
    server_cmd("kick #%d ^"Proxy&VPN not allowed here for unregistered players! Register^"", get_user_userid(id));
}
Дори и да ти се добави кода, който искаш няма пак да работи плъгина напротив няма да се компилира, затова ползвай този код, който ти предоставих там я има въпросната функция
Не работи едитнах си поста може да видиш и снимката а и този пългин е на @juice не е на @s7amb370
Изображение


NEW CS 1.6 SERVERS IP: 45.144.155.176:27015

Изображение

Аватар
moviez
Извън линия
Рекламатор
Рекламатор
Мнения: 11
Регистриран на: 05 Май 2020, 23:01
Се отблагодари: 14 пъти
Получена благодарност: 2 пъти

Редакция на Plugins-ProxyDetected

Мнение от moviez » 13 Май 2020, 08:39

Здравейте,

Не съм запознат със amx програмирането, но имам дългогодишен опит в други 'кибер' начинания.
Разгледах темата и имам един въпрос:

Сигурни ли сте, че httpx е способен да обработва SSL/TLS заявки?

п.с.

proxy.mind-media.com не работи от години, новия адрес е друг, а той приема само https (SSL/TLS) заявки.

мисля, че по правилно би било заявката да се промени така:

вместо:

Код за потвърждение: Избери целия код

http://proxy.mind-media.com/block/proxycheck.php?ip=%s
да стане:

Код за потвърждение: Избери целия код

https://blackbox.ipinfo.app/lookup/%s
по този начин се спестява един редирект.


Извинете ме, ако сметнете мнението за безполезно или спам, новобранка съм :)


Последно издигане Just от 13 Май 2020, 08:39

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 13 госта