22.07.2012, 20:09
(
Последний раз редактировалось ipsBruno; 24.07.2012 в 19:59.
)
Anti DDOS Bots
Agora sim !! Estб funcionando e foi testado.
Quote:
[17:38:04] Incoming connection: 127.0.0.1:58125 [17:38:04] Incoming connection: 127.0.0.1:58126 [17:38:04] Incoming connection: 127.0.0.1:58127 [17:38:04] Incoming connection: 127.0.0.1:58128 [17:38:04] Incoming connection: 127.0.0.1:58129 [17:38:04] Incoming connection: 127.0.0.1:58130 [17:38:05] Incoming connection: 127.0.0.1:58131 [17:38:05] Incoming connection: 127.0.0.1:58132 [17:38:05] Incoming connection: 127.0.0.1:58133 [17:38:05] Incoming connection: 127.0.0.1:58134 [17:38:07] [join] bRUNO_(QlP4 has joined the server (100:127.0.0.1) [17:38:07] [join] bRUNO_NQw)Y has joined the server (101:127.0.0.1) [17:38:07] 101 Entrou em menos de 2 segundos [17:38:07] [join] bRUNO_yq8OD has joined the server (102:127.0.0.1) [17:38:07] 102 Entrou em menos de 2 segundos [17:38:07] BOT: ID -> 102 IP -> 127.0.0. [17:38:08] [part] bRUNO_yq8OD has left the server (102:2) |
Quote:
Agora funcionou
PHP код:
|
Cуdigo:
PHP код:
#include a_samp
#if !defined varGet
#define varGet(%0) getproperty(0,%0)
#endif
// https://sampforum.blast.hk/showthread.ph...7.17809931
#if !defined varSet
#define varSet(%0,%1) setproperty(0, %0, %1)
#endif
stock botGetIP[24];
#define IsPlayerBot(%0)\
GetPlayerPing(%0) == 65535 && (gettime() - varGet((GetPlayerIp(%0, botGetIP, sizeof botGetIP), botGetIP)) > 5)
public OnPlayerConnect(playerid) {
if(IsPlayerNPC(playerid)) return false;
static
playerip[24]
;
GetPlayerIp(playerid, playerip, 24);
if(gettime() - varGet(playerip) < 2) {
strcat(playerip, "di_S");
if(gettime() - varGet(playerip) < 3) {
return false;
}
printf("%d Entrou em menos de 2 segundos", playerid);
GetPlayerIp(playerid, playerip, 20);
varSet(playerip, gettime());
strcat(playerip, "x");
static timers ;
timers = varGet(playerip);
varSet(playerip, 1+ timers);
if(timers > 2) {
playerip[strlen(playerip) - 2] = 0;
printf("BOT: ID -> %d IP -> %s", playerid, playerip);
BanEx(playerid, "Bot Connect");
}
}
return varSet(playerip, gettime());
}
public OnPlayerDisconnect(playerid, reason) {
if(reason == 2) {
static
playerip[20]
;
GetPlayerIp(playerid, playerip, 20);
strcat(playerip, "di_S");
varSet(playerip, gettime());
}
return false;
}
----
Tambйm й aconselhбvel que vocк coloca o seguinte no topo de cada callback que use playerid:
pawn Код:
if(IsPlayerBOT(playerid)) return false;