14/09/2014, 05:48 PM (Última modificación: 16/04/2015, 01:12 PM por Kane.)
Anti-Spam v1.5.2b
Descripcion:
Es un simple plugin que mediante patrones de regex checkea si una string tiene una IP o direccion web, ya sea el nombre del jugador o lo que escribio por say. Alguien puede intentar spamear algo 5 veces y luego sera kickeado.
ChangeLog:
Código:
v1.0 - Realizacion del plugin
v1.1 - Mejoramiento en rendimiento y funcion del pattern de Regex
- Nueva mejora en los patterns, ahora detecta paginas web de una forma mas eficiente (minimo de 2 letras despues del punto).
Proxima actualizacion lo mejoraré aun más por futuros problemas con nombres raros como 'As.dd'
- Nuevo tipo de deteccion de ip.
v1.1b - Arreglado algunas cosas del pattern de la web
v1.2a - Minusculos cambios.
v1.3 - Mejorado el regex de web. Ahora blockea a las que empiezan con http(s)://
v1.4 - Plugin mas modulizado
v1.5 - Agregado nuevo regex de ips. Arreglado el error del regex de ips: 192. 123 (...) |
192 .123 (...) | 123 . 123 (...)
v1.5.2b - Re-escrito el regex de la ip. Removido el regex de ip n°2.
replace_all(msg, 190, "!g", "^4") // Green Color replace_all(msg, 190, "!y", "^1") // Default Color replace_all(msg, 190, "!team", "^3") // Team Color replace_all(msg, 190, "!team2", "^0") // Team2 Color
if (id) players[0] = id; else get_players(players, count, "ch")
for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, players[i]) write_byte(players[i]) write_string(msg) message_end() } } }
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)
(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
Descomponemos en:
\b = Delimitador: marca espacios en blanco, puntuación o el inicio/final de una cadena. (no me acordaba como explicarlo xd)
() = sabes para que sirve un parentesis..
(?:x) = busca un numero que coincida con 'x'(lo que le sigue), y despues de ser llamado de nuevo busca otro sin importa si coindice con el 'x' anterior
\d = numeros entre 0 y 9 = [0-9]
{1,3} = indica que la accion ejectudad se realiza: min(x, y)=(1, 3)= se realize + de una vez pero menos de 3
(\.|-| |/) = la barra '|' es 'o', es decir (tiene un '.' o tiene espacio o tiene /)=(\.|-| |/)
{1} = indica que la accion ejecutada anteriormente se repita 1 vez
En castellano:
\b = empieza la cadena
(buscamos un numero que (? sea entre 0-9 (\d) tres veces seguido por (\.|-| |/)=(tiene un '.' o tiene espacio o tiene /))Repetimos esto:{1} veces
buscamos otro numero entre 0 y 9 (\d) y lo repetimos {1,3} veces
\b = termina la cadena
Las cosas que pude te las explica, hubo otras que son dificiles de explicar y las tuve que buscar.
Espero haber aclarado las dudas
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)
(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
(15/09/2014, 10:53 PM)Milashkasiya escribió: Cambia los EngFunc_SetClientKeyValue + client_cmd por set_user_info y deberias usar regex_compile + regex_match_c
Maniana si tengo tiempo cambio lo del keyvalue. No hace falta usar regex_compile y después regex_match_c si ya con regex_match anda y encima es mas editable.
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)
(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
(15/09/2014, 10:53 PM)Milashkasiya escribió: Cambia los EngFunc_SetClientKeyValue + client_cmd por set_user_info y deberias usar regex_compile + regex_match_c
No hace falta usar regex_compile y después regex_match_c si ya con regex_match anda y encima es mas editable.
¿? - dale una mirada al inc
Código:
* Precompile a regular expression. Use this if you intend on using the
* same expression multiple times. Pass the regex handle returned here to
* regex_match_c to check for matches.
(15/09/2014, 11:18 PM)Kane escribió: No hace falta usar regex_compile y después regex_match_c si ya con regex_match anda
Entonces, si anda, el resto da igual?
Cuando barajas opciones en la mesa, saca la que mas convenga, pero siempre y cuando haga lo mismo. Utilizando regex_compile con regex_match_c hace lo mismo en teoria que regex_match. Pero, el primero mencionado alivia un poco el trabajo del proceso que esta por dentro.
Entonces, una persona con sentido comun, y que más encima programa, será lo suficiente como para decir "sabes, por minimo que sea, esto es mejor" y pensar?
(15/09/2014, 11:18 PM)Kane escribió: No hace falta usar regex_compile y después regex_match_c si ya con regex_match anda
Entonces, si anda, el resto da igual?
Cuando barajas opciones en la mesa, saca la que mas convenga, pero siempre y cuando haga lo mismo. Utilizando regex_compile con regex_match_c hace lo mismo en teoria que regex_match. Pero, el primero mencionado alivia un poco el trabajo del proceso que esta por dentro.
Entonces, una persona con sentido comun, y que más encima programa, será lo suficiente como para decir "sabes, por minimo que sea, esto es mejor" y pensar?
Lo había echo para hacer otra cosa que al final decidí no hacerla. No es que no me doy cuenta
Update a v1.1
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)
(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
Parece que no hay manera ya de bloquear el spam... prefiero poner un plugin que me cambié los números por un "*" (Sin comillas) así funciona mejor. Hacen de todo para spamear.
(17/09/2014, 12:28 AM)DominicanCrazy escribió: Parece que no hay manera ya de bloquear el spam... prefiero poner un plugin que me cambié los números por un "*" (Sin comillas) así funciona mejor. Hacen de todo para spamear.
Solo por micrófono el spam es imposible bloquearlo.
Todos los MODS VHL totalmente gratuitosDescarga Aqui
21/09/2014, 02:32 AM (Última modificación: 21/09/2014, 02:32 AM por DominicanCrazy.)
Probé el plugin, no importa el tag/name/nick que ponga no me deja entrar me aparecía un cartel "Su nombre tiene SPAM por favor cambielo"
probé con numeros, y sin numeros.. raro. Terminé sacandolo porque .. lo de arriba
Probé el plugin, no importa el tag/name/nick que ponga no me deja entrar me aparecía un cartel "Su nombre tiene SPAM por favor cambielo"
probé con numeros, y sin numeros.. raro. Terminé sacandolo porque .. lo de arriba
(21/09/2014, 02:32 AM)DominicanCrazy escribió: Probé el plugin, no importa el tag/name/nick que ponga no me deja entrar me aparecía un cartel "Su nombre tiene SPAM por favor cambielo"
probé con numeros, y sin numeros.. raro. Terminé sacandolo porque .. lo de arriba
Fiajte que lo actualize recien
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)
(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
16/10/2014, 11:53 AM (Última modificación: 16/10/2014, 12:19 PM por 11naracus.)
te desconecta si el tag tiene algun simbolo tambien si escribo en say una ip no la bloquea y podes spamear tranquilo :S
me di cuenta que lleva el modulo regex como lo instalo y de donde lo bajo capas por eso tengo el problem ? :S
16/10/2014, 01:39 PM (Última modificación: 16/10/2014, 01:39 PM por Kane.)
(16/10/2014, 11:53 AM)11naracus escribió: te desconecta si el tag tiene algun simbolo tambien si escribo en say una ip no la bloquea y podes spamear tranquilo :S
me di cuenta que lleva el modulo regex como lo instalo y de donde lo bajo capas por eso tengo el problem ? :S
Ahi actualize, me descargue el archivo que habia subido porque habia formateado la PC y lo testie, funciona perfecto. Le saque la opcion de '-' en las paginas web porque kickeaba a muchos bots por supuesto spam, ya que hay varios nombres con '-'. Bueno proba y si no anda dejame que error te sale, porque ami me anda perfecto. (tenes regex puesto sin ';' en modules.ini?)
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)
(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post