Página 2 de 2 PrimeiroPrimeiro 12
+ Responder ao Tópico



  1. #7

    Padrão

    nao tem mta (ou nenhuma) solução nao.. :P

  2. #8

    Padrão

    Raniel,

    eu achei esse script, é esse? coloquei esse mais num deu certo não!

    # use global hacklist variable
    #:log info ($hacklist)
    :foreach host in $hacklist do={
    :foreach i in= [/ip dhcp-server lease find host-name $host] do={
    :local ipnum [/ip dhcp-server lease get $i address]
    :local unum [/ip hotspot active find address $ipnum]
    :if ([:len $unum] >0) do {
    :local usr [/ip hotspot active get $unum user]
    :log warning ($host . " " . $ipnum . " " . $usr)
    #next line kick them out right now, could also check pppoe
    /ip hotspot active remove $unum
    #other stuff can do now with the identified IP and USER
    }
    }
    }



  3. #9

  4. #10

    Padrão

    Citação Postado originalmente por Raniel Ver Post
    É este aqui

    Raniel foi esse mesmo que eu abri, porém num entendo ingles, até tentei utilizar um servidor, pra ver se era necessario adptar ao meu server ou só copiar, então só copiei e colei la mesmo, porém não adiantou!

    se você puder me da uma ajuda eu te agradeço...



  5. #11

    Padrão

    Vamos lá meu caro,
    Deve-se atentar para usar a versão < 3. Caso queira usar ver. > 3 terás que alterar a maneira das variáveis.

    A primeira coisa que o nosso amigo menciona é executar um script(A) a cada minuto:
    Citação Postado originalmente por SCRIPT A
    :local hosts [/ip dhcp-server lease find]
    :local pcname "X"
    :local pcnum 0
    :global hacklist ""
    :foreach h in $hosts do={
    :local host [/ip dhcp-server lease get $h host-name]
    :if ([:len $host] >0) do {
    :set pcname ($pcname . "," . $host)
    :set pcnum ($pcnum + 1)
    }
    }
    :foreach h in $pcname do={
    :local hh 0
    :if (!([:find $hacklist $h]>=0)) do={
    :foreach k in $pcname do={ :if ($k=$h) do={:set hh ($hh + 1) } }
    :if ($hh>2) do={
    :if ([:len $hacklist] >0) do {:set hacklist ($hacklist . "," . $h)} else={:set hacklist $h}
    }
    }
    }
    # monitor results in logfile once an hour
    :local timer [ick [/system clock get time] 3 5]
    :if (($switch > 0) || ($timer >= "58")) do={
    :log warning ("New Hacklist: " . $hacklist)
    }
    Aqui ele criou uma variável global (hacklist) e outras locais pegar o hostname (nome do pc na rede) que fará uma verificação. A verificação diz que se existir mais de 2 computador ($hh>2) com o mesmo nome, que o mikrotik irá setar a variável hacklist gerando um log.


    Citação Postado originalmente por SCRIPT B
    :foreach host in $hacklist do={
    :foreach i in= [/ip dhcp-server lease find host-name $host] do={
    :local ipnum [/ip dhcp-server lease get $i address]
    :local unum [/ip hotspot active find address $ipnum]
    :if ([:len $unum] >0) do {
    :local usr [/ip hotspot active get $unum user]
    :log warning ($host . " " . $ipnum . " " . $usr)
    #next line kick them out right now, could also check pppoe
    /ip hotspot active remove $unum
    #other stuff can do now with the identified IP and USER
    }
    }
    }
    Este script será executado a cada 20 segundos(pode ser o tempo que quiser). Ele irá remover a entradas da hacklist que estiverem ativas no hotspot.


    Se você não tiver muitos clientes e um pouco de paciência, pode criar uma variável local com o nome dos pcs na sua rede e fazer uma verificação. Caso os hostnames do dhcp-server seje diferente das variáveis locais, ele irá remover.

  6. #12

    Padrão

    nada amigo, coloquei os dois scripts e nada!

    se tiver alguma outra solução porfavor me diz ai...


    obrigado