FIX SendNetMsg (Костыль от лагов читами) [Удалено]

Статус
В этой теме нельзя размещать новые ответы.

komashchenko

Идиот
Сообщения
916
Реакции
2,570
@Rostu, немного почистил и оптимизировал твой код
C-подобный:
//// b_ddos_protect.sp

//
// Code size:             4776 bytes
// Data size:             2392 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   23552 bytes
//
// Compilation Time: 0,19 sec
// ----------------------------------------

//// b_ddos_protect 1.0.1.sp
//
// Code size:             4632 bytes
// Data size:             2388 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   23404 bytes
//
// Compilation Time: 0,19 sec
// ----------------------------------------

Оффтоп
 

BossKotoriiNeSmok

Участник
Сообщения
987
Реакции
192
@Rostu, немного почистил и оптимизировал твой код
C-подобный:
//// b_ddos_protect.sp

//
// Code size:             4776 bytes
// Data size:             2392 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   23552 bytes
//
// Compilation Time: 0,19 sec
// ----------------------------------------

//// b_ddos_protect 1.0.1.sp
//
// Code size:             4632 bytes
// Data size:             2388 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   23404 bytes
//
// Compilation Time: 0,19 sec
// ----------------------------------------
Отлично) Кстать,он работает) Так же и с сб(со старым точно.)
 

komashchenko

Идиот
Сообщения
916
Реакции
2,570
И я внесу свои 2 копейки, написал около 2-3 дней назад, забанило 3 чела
(пример)
PHP:
L 02/03/2018 - 09:39:16: [b_ddos_protect.smx] ломИк - Net channel ratelimit exceeded for 188.186.96.51:28373: 2567 packets rejected.
Не знаю, на сколько это разумно написано, надеюсь, кто нибудь укажет на ошибки, но главное: Это работает(Лично у меня конечно).Оффтоп
Требование одно: Ptah
Логика => Пакетов более чем 1800 => По ip вычисляется клиента => По UserId банится + пишется лог в addons/ddos_protect.ini .

От немножко переделал
Оффтоп
 

code++

Участник
Сообщения
367
Реакции
129
От немножко переделал
Оффтоп
 

Вложения

  • b_ddos_protect 1.0.2.smx
    4.8 КБ · Просмотры: 91
  • b_ddos_protect 1.0.2.sp
    1.6 КБ · Просмотры: 117
  • PTaH.inc
    17.3 КБ · Просмотры: 56

MaZa

Участник
Сообщения
1,732
Реакции
980
И я внесу свои 2 копейки, написал около 2-3 дней назад, забанило 3 чела
(пример)
PHP:
L 02/03/2018 - 09:39:16: [b_ddos_protect.smx] ломИк - Net channel ratelimit exceeded for 188.186.96.51:28373: 2567 packets rejected.
Не знаю, на сколько это разумно написано, надеюсь, кто нибудь укажет на ошибки, но главное: Это работает(Лично у меня конечно).Оффтоп
Требование одно: Ptah
Логика => Пакетов более чем 1800 => По ip вычисляется клиента => По UserId банится + пишется лог в addons/ddos_protect.ini .
не работает если установлен SMAC ultra
 

komashchenko

Идиот
Сообщения
916
Реакции
2,570
А что не так? :ab:

Кстати, а для чего break в цикле проверки IP игроков?
А вдруг с этого IP больше одного человека зашло.
Оффтоп

я сверяю вместе с портом а не только ип
 

Agony

Участник
Сообщения
167
Реакции
52
Сервер закрывается с логами -

Оффтоп
 

rokfestr

Участник
Сообщения
340
Реакции
63
Сервер закрывается с логами -

Оффтоп
У меня так же
 
T

Tolyan

  • Автор ресурса
  • #33
У всех так! Страдайте господа))))))xD
 

Rostu

Добрая душа
Сообщения
986
Реакции
623
@Tolyan, Никто не мешает поставить плагин выше
И я внесу свои 2 копейки, написал около 2-3 дней назад, забанило 3 чела
(пример)
PHP:
L 02/03/2018 - 09:39:16: [b_ddos_protect.smx] ломИк - Net channel ratelimit exceeded for 188.186.96.51:28373: 2567 packets rejected.
Не знаю, на сколько это разумно написано, надеюсь, кто нибудь укажет на ошибки, но главное: Это работает(Лично у меня конечно).Оффтоп
Требование одно: Ptah
Логика => Пакетов более чем 1800 => По ip вычисляется клиента => По UserId банится + пишется лог в addons/ddos_protect.ini .

@Rostu, немного почистил и оптимизировал твой код
C-подобный:
//// b_ddos_protect.sp

//
// Code size:             4776 bytes
// Data size:             2392 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   23552 bytes
//
// Compilation Time: 0,19 sec
// ----------------------------------------

//// b_ddos_protect 1.0.1.sp
//
// Code size:             4632 bytes
// Data size:             2388 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   23404 bytes
//
// Compilation Time: 0,19 sec
// ----------------------------------------

От немножко переделал
Оффтоп
 

Exle

Участник
Сообщения
190
Реакции
216
PHP:
public Action OnPlayerRunCmd(int client)
{
    // If player is a fake client, there will be an error in GetClientAvgPackets
    if (!IsFakeClient(client))
    {
        // Get client average packet frequency in packets/sec. Check it
        Ban(client, GetClientAvgPackets(client, NetFlow_Both));
    }
}

void Ban(int client, float frequency)
{
    if (frequency > 1800)
    {
        char buffer[24];
        PrintToChatAll("[Anti-DDoS] Игрок %N забанен за DDoS читами", client);
        GetClientAuthId(client, AuthId_Steam2, buffer, 24);
        LogToFileEx("addons/ddos_protect.log", "%N [%s] - Packet frequency (%.2f)", client, buffer, frequency);
        ServerCommand("sm_ban #%d 0 DDoS cheat", GetClientUserId(client));
    }
}
 

Вложения

  • b_ddos_protect.smx
    4.2 КБ · Просмотры: 25
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,927
  • Команда форума
  • #36
@Exle,
PHP:
public Action OnPlayerRunCmd(int client) {
    // If player is a fake client, there will be an error in GetClientAvgPackets.
    if (IsFakeClient(client)) return;

    // Get client average packet frequency in packets/sec. Check it.
    Ban(client, GetClientAvgPackets(client, NetFlow_Both));
}

void Ban(int client, float freq) {
    if (freq < 1800.0) return;

    PrintToChatAll("[Anti-DDoS] Игрок %N забанен за DDoS читами", client);
    LogToFileEx("addons/ddos_protect.log", "%L exceeded Packet frequency (%.2f)", client, freq);
    ServerCommand("sm_ban #%d 0 DDoS cheat", GetClientUserId(client));
}
 

Вложения

  • b_ddos_protect.smx
    4.1 КБ · Просмотры: 42

Exle

Участник
Сообщения
190
Реакции
216
@Kr1kuzya написал тоже самое, что и я, за исключением %L, смысл?
 
Последнее редактирование:

Exle

Участник
Сообщения
190
Реакции
216
PHP:
int maxpackets;

public void OnConfigsExecuted()
{
    // sv_maxcmdrate - Max number of packets sent to server per second.
    // sv_maxupdaterate - Number of packets per second of updates you are requesting from the server.
    // (Outgoing + incoming traffic) + inaccuracy 100 packets.
    maxpackets = FindConVar("sv_maxcmdrate").IntValue + FindConVar("sv_maxupdaterate").IntValue + 100;
}

public Action OnPlayerRunCmd(int client)
{
    // If player is a fake client, there wills be an error in GetClientAvgPackets
    if (!IsFakeClient(client))
    {
        // Get client average packet frequency in packets/sec. Check it
        Ban(client, GetClientAvgPackets(client, NetFlow_Both));
    }
}

void Ban(int client, float frequency)
{
    if (frequency > maxpackets)
    {
        LogToFileEx("addons/ddos_protect.log", "%L Packet frequency exceeding (%.2f)", client, frequency);
        ServerCommand("sm_ban #%d 0 DDoS cheat", GetClientUserId(client));
    }
}
 

Вложения

  • b_ddos_protect.smx
    4 КБ · Просмотры: 16
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу