+ Responder ao Tópico



  1. #1

    Padrão Rb 750 gl + api php

    Pessoal, estou utilizando uma RB750GL e a API PHP para alguns procedimentos, no entanto, de forma alguma estou conseguindo utilizar a API para remover um usuário da lista de conexões ativas do hotspot.

    Eu consigo listar, consigo cadastrar, alterar senha e etc, agora, remover tá osso. Já tentei os comando abaixo e nada.

    $API->comm("/ip/hotspot/active remove [/ip/hotspot/active find where user=user]");
    $API->comm("/ip/hotspot/active remove [find where user=user]");
    $API->comm("/ip/hotspot/active remove where user=user]");
    $API->comm("/ip/hotspot/active remove user=user]");

    O único comando que deu certo foi o:

    $API->comm("/ip/hotspot/active/remove", array("numbers"=> UM_NÚMERO_DECIMAL,));

    Mas aí entra outro problema, eu não consigo na listagem capturar esse número nem por reza braba, só consigo listar o usuário.

    Um help please ae moçada!

    Vlw.

  2. #2

    Padrão Re: Rb 750 gl + api php

    Bom, mesmo pesquisando, pesquisando e pesquisando, eu não consegui muita coisa. Então resolvi adotar o famoso recurso, tentativa vs erro. Então bingo, consegui o que eu queria. Não sei é a melhor forma, mas pelo menos eu consegui. Segue abaixo minha solução.


    Arquivo >> conexoes_ativas.php

    require('routeros_api_class.php');
    $servidor = "10.10.10.10";
    $API = new routeros_api();
    $API->debug = false;
    if ($API->connect($servidor, 'USUARIO', 'SENHA')) {



    // Listar as conexões ativas no momento.
    $LISTA = $API->comm("/ip/hotspot/active/print");

    &nbsp);

    }

    Nesse FOR, monta a lista de conexões. Na minha página, eu exibo várias coisas, mas neste for estou exibindo apenas o ID do usuário, que é o que nos interessa para remover a conexão.


    for ($i=0; $i<=$TOTAL; $i++)


    {
    $regtable = $ARRAY[$i];

    echo "<a href=del.php?usuario=".$regtable6['.id'] . ">Remover</a><br>";
    }


    Na página del.php eu fiz o seguinte.

    require('routeros_api_class.php');
    $servidor = "10.10.10.10";
    $API = new routeros_api();
    $API->debug = false;



    //A variável $user recebe o valor de del.php?usuario=".$regtable6['.id']

    $user = $_GET['usuario'];
    if ($API->connect($servidor, 'USUARIO', 'SENHA')) {

    //e aqui faz a brincadeira...vai na RB, pegar o ID do usuário e manda ele pro espaço e manda de volta para a página com a lista de conexões.


    $API->comm("/ip/hotspot/active/remove", array(
    ".id"=> "$user",));

    $API->disconnect();

    header("Location:conexoes_ativas.php");

    }
    Última edição por maxwbr; 28-10-2015 às 19:48.

  3. #3

    Padrão Re: Rb 750 gl + api php

    Se alguém ainda se interessar...segue o código para montar a lista de conexões ativas mais enxuta.

    <table class="striped responsive-table">
    <tr style="font-weight:bold;">
    <td>Usuário</td>
    <td>IP</td>
    <td>MAC</td>
    <td>Tempo de Conexão</td>
    <td>Ação</td>
    </tr>
    <?php for ($i=0; $i<=$TOTAL -1; $i++): ?>
    <?php $regtable = $ARRAY[$i] ?>

    <tr>
    <td><?php echo "<font color=#04B404>" . $regtable['user'] . "</font>"; ?></td>
    <td><?php echo "<font color=#04B404>" . $regtable['address'] . "</font>"; ?></td>
    <td><?php echo "<font color=#04B404>" . $regtable['mac-address'] . "</font>"; ?></td>
    <td><?php echo "<font color=#04B404>" . $regtable['uptime'] . "</font>"; ?></td>
    <td><?php echo "<font color=#04B404><a href=del.php?usuario=" . $regtable['.id'] . "><img src=img/delete.png></a></font>"; ?></td>


    </tr>
    <?php endfor; ?>
    </table>

  4. #4

    Padrão Re: Rb 750 gl + api php

    Vc pode remover pelo login da seguinte forma
    $API->comm("/ip/hotspot/user/remove", array(
    "numbers"=> "$login",));

    Uma forma de saber como aplicar algum comando é ver primeiro no terminal do mikrotik depois é so fazer igual com api.
    Com dois tab no menu do terminal vc lista as possibilidades de cada menu.


  5. #5

    Padrão Re: Rb 750 gl + api php

    Olá deson00, obrigado pela resposta. Mas eu já consegui a solução, e foi executando exatamente os procedimentos que você citou. Depois fui aos poucos encaixando tudo na API até conseguir o resultado esperado.

    Abs

  6. #6

    Padrão

    Ola amigo pode me ajudar? esse arquivo "routeros_api.class.php" é para ficar dentro da RB?

  7. #7

    Padrão Re: Rb 750 gl + api php

    Citação Postado originalmente por cristianosaid Ver Post
    Ola amigo pode me ajudar? esse arquivo "routeros_api.class.php" é para ficar dentro da RB?
    Olá @cristianosaid!

    Então, o arquivo routeros_api.class.php não fica dentro da RB, para a minha solução ela fica fora da RB. Para ficar dentro de uma RB ela primeiro teria q ter como rodar PHP dentro e um servidor web com suporte a PHP, eu não sei se tem alguém q faça isso numa RB, mas enfim, no meu caso, eu coloquei os arquivos num servidor externo e quanto o arquivo routeros_api_class é acessado ele contém os parâmetros para chegar dentro da RB e fazer o que vc quiser.

    No meu caso, eu criei uma página para cadastro de usuários no hotspot e funciona perfeitamente. Já fiz isso inclusive aqui no meu trabalho e em mais 2 clientes que são lanchonetes.