CountryKick - Ayuda con IPs locales
#1
Hola gente del foro, estoy acá porque requiero de su ayuda, desde ya aclaro que este código no es mío, si no que es de un plugin que conseguí en una pagina rusa la cual me sirve para bloquear ciertos paises del server. Mas que nada lo quiero usar para bloquear gente que entra con VPNs de Estados Unidos y etc, ya que mi server es pirata y no puedo banear por Steam ID.

Ya intenté usar uno que había por la pagina pero cada vez que se inicializaba, me crasheaba el server por alguna razón, y como yo tengo MUY pocos conocimientos de programación, no supe identificar casi nada.

Necesito que me ayuden con esta opción: amx_ckick "a"

Con esta opción solo se permite el acceso a paises que el admin haya especificado. Bueno, la cosa es que cada vez que entro, ya que mi IP es local, me echa del server y no tengo la mas mínima idea de como añadir una excepción para las IPs locales.

No puedo usar el amx_ckick "b" ya que son mas de 200 paises los que tendría que bloquear.

Si me pueden ayudar, se los agradecería mucho.


Código:
/*
*  AMX Mod script.
*
* (c) Copyright 2003, ST4life
* This file is provided as is (no warranties).
*/

#include <amxmod>
#include <geoip>

/*
* "CountryKick" is a plugin to kick players how does not come from allowed countries.
*
* Define modus:
* Open your server.cfg or admin.cfg and a a new line:
*
*  amx_ckick "flag"
*
*    a - only player from defined countries are allowed to play (amx_ckick_allow)
*    b - everyone can play exept the defined players (amx_ckick_deny)
*
* Define Countries:
* Open your server.cfg or admin.cfg and a a new line:
*
*  amx_ckick_allow "land" "land 2"
*
*  the form for "land" and "land 2" are with 2 letters like de = germany: example:
*  amx_ckick_allow "se" "dk" "us" "uk"
*

*  amx_ckick_deny "land" "land 2"
*
*  the form for "land" and "land 2" are with 2 letters like de = germany: example:
*  amx_ckick_deny "de" "be" "no"
*
*
* History:
*
* v0.1: - public release
*/

#define MAX_ALLOW    64
#define MAX_DENY    64

new ckick_allow[MAX_ALLOW][3]
new ckick_deny[MAX_DENY][3]
new ckick[2]
new ckicka_num = 0
new ckickd_num = 0
new pa_num = 1
new pd_num = 1

public ckickallow_cmd(){
    if (ckicka_num >= MAX_ALLOW){
        server_print("[AMX] Country limit reached!")
        return PLUGIN_HANDLED
    }
    for(new i = 0; i < MAX_ALLOW; ++i) {
        read_argv(pa_num,ckick_allow[ckicka_num],2)
        ckicka_num++
        pa_num++
    }
    return PLUGIN_HANDLED
}

public ckickdeny_cmd(){
    if (ckickd_num >= MAX_DENY){
        server_print("[AMX] Country limit reached!")
        return PLUGIN_HANDLED
    }
    for(new i = 0; i < MAX_DENY; ++i) {
        read_argv(pd_num,ckick_deny[ckickd_num],2)
        ckickd_num++
        pd_num++
    }
    return PLUGIN_HANDLED
}

public ckick_cmd(){
    read_argv(1,ckick,1)
    return PLUGIN_HANDLED
}

public client_connect(id){
        new ip[32], country[3]
    get_user_ip(id,ip,31)
    geoip_code2(ip,country)
    new index = -1
    if(contain(ckick,"a") != -1) {
        for(new i = 0; i < MAX_ALLOW; ++i) {
            if (equali(country,ckick_allow[i])) {
                index = -1
                break
            } else {
                index = i
            }

        }
        if (index != -1) {
            client_cmd(id,"echo ^"[AMX] Sorry, but you're not allowed to play on this server!^"")
            client_cmd(id,"echo ^"[AMX] Your country is not on the list of enabled countries^";disconnect")
        }
    }
    if(contain(ckick,"b") != -1) {
        for(new i = 0; i < MAX_DENY; ++i) {
            if (equali(country,ckick_deny[i])) {
                index = i
                break
            }
        }
        if (index != -1) {
            client_cmd(id,"echo ^"[AMX] Sorry, but you're not allowed to play on this server!^"")
            client_cmd(id,"echo ^"[AMX] Your country is not on the list of enabled countries^";disconnect")
        }
    }
    return PLUGIN_CONTINUE
}

public plugin_init(){
    register_plugin("CountryKick","0.1","ST4life")
    register_srvcmd("amx_ckick_allow","ckickallow_cmd")
    register_srvcmd("amx_ckick_deny","ckickdeny_cmd")
    register_srvcmd("amx_ckick","ckick_cmd")
    return PLUGIN_CONTINUE
}
Responder
#2
En el mismo código te dice que tienes que abrir el archivo server.cfg o admin.cfg de tu server, como vos querés usar la flag "a" tienes que agregar esta línea y ahí poner que países tienen permitido ingresar al servidor.


* amx_ckick_allow "land" "land 2"

* the form for "land" and "land 2" are with 2 letters like de = germany: example:
* amx_ckick_allow "se" "dk" "us" "uk"
Responder
#3
(11/08/2022, 01:18 PM)WaTaFa escribió: En el mismo código te dice que tienes que abrir el archivo server.cfg o admin.cfg de tu server, como vos querés usar la flag "a" tienes que agregar esta línea y ahí poner que países tienen permitido ingresar al servidor.


*  amx_ckick_allow "land" "land 2"

*  the form for "land" and "land 2" are with 2 letters like de = germany: example:
*  amx_ckick_allow "se" "dk" "us" "uk"

El problema está en que ya puse como pais permitido a Argentina, pero como mi IP a la hora de conectarme es Local, el GeoIP no logra identificar mi pais y me echa de todas formas.
Responder
#4
el geoip no te servira de mucho ya que un vpn lo burlara.. tenes que usar otra cosa mas avanzada como el Proxy snort ó proxy_check
Responder
#5
consumir algun servicio antivpn con gRIP o cuRL te podría ayudar un poco.
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#6
https://amxmodx-es.com/Thread-Country-Manager
Responder
#7
(12/08/2022, 02:40 PM)[N]drs escribió: https://amxmodx-es.com/Thread-Country-Manager

vos si que me ayudaste, no como los demás, gracias bro, te lo agradezco de corazón.
Responder
#8
(12/08/2022, 11:24 PM)MultiBruno3333 escribió: vos si que me ayudaste, no como los demás, gracias bro, te lo agradezco de corazón.

para la proxima postea en PEDIDO DE PLUGINS crack, saludos.
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)