+ Responder ao Tópico



  1. #1

    Padrão Enviar configurações via WEB para uma RB

    Pessoal boa noite,

    Instalei internet em um colégio e fiz autenticação via hotspot + user manager em uma rb750. Configurei 3 perfis de usuários:

    1 - Professores com logins individuais, com a liberdade de usar em até 2 dispositivos simultaneamente, sem horário limite para uso.

    2 - Alunos, um login único para todos, com uso liberado apenas nos intervalos


    3 - Uma lista com vários logins com validade de 90 minutos cada, sem limite de dispositivos para caso algum professor queira usar internet durante a aula, basta passar um desse logins para os alunos.


    Porém como ninguém gosta muito de respeitar regras alguns alunos conseguiram alguns desses logins de 90 minutos e estão usando ...


    Então eu pensei em uma alternativa:
    Na routerboard hospedar uma página em que se o professor colocar seu login e sua senha seja gerado um usuário com 90 minutos ...

    Ai eu lhes pergunto:
    Como eu posso enviar comandos para a RB via web, se fosse pelo terminal disponível internamente eu até sei, mas não tenho nem ideia de como fazer isso web

    att Gabriel

  2. #2

    Padrão Re: Enviar configurações via WEB para uma RB

    Veja se isso te ajuda

    Ative a API de comunicação em ip -> services, possivelmente a primeira opção.

    Crie um profile com os atributos desejados no hotspot

    Baixe a API PHP no site da MikroTik.

    Crie uma página em PHP com o seguinte conteúdo.
    Código PHP:
    <?php
    require('../routeros_api.class.php');
    //dentro do require vai o local aonde salvou a classe routeros_api.class.php

    $API = new routeros_api();
    $API->debug false;

    //dados do professor

    $usuario $_POST['usuario'];
    $senha$_POST['senha'];

    //dados do seu mikrotik
    $ip 'ip do mikrotik';
    $usuario 'usuario';
    $senharb 'senha';

    if (
    $API->connect($ip$usuario$senharb)){
              
    $API->comm("/ip/hotspot/user/add", array(
               
    "name"     => $usuario,
               
    "password" => $senha,
               
    "server" => "server",
    //o atributo profile deve conter o perfil que foi criado no mikrotik
               
    "profile"  => "voucher",
               ));
           
    $API->disconnect();
        }        
    ?>
    Depois só criar um formulário (form) em um HTML que tenha como action essa página e o method seja post.
    Última edição por trober; 21-03-2016 às 09:10. Razão: Formatação do código PHP

  3. #3

    Padrão Re: Enviar configurações via WEB para uma RB

    Você pode usar a classe API php para enviar os comandos via web:
    http://wiki.mikrotik.com/wiki/API_PHP_class

  4. #4

    Padrão Re: Enviar configurações via WEB para uma RB

    Ative a função API em ip-services

    baixe a classe da API em PHP no site da MikroTik

    faça um formulário e crie uma pagina mais o menos assim

    Código PHP:
    <?php


    //solicita os arquivos para iniciar o API
        
    require('../routeros_api.class.php');
        
    $API = new routeros_api();
        
    $API->debug true;


    //dados do cliente
    $usuario=$_POST['usuario'];             //puxa o usuario do form de cadastro   */
    $senha=$_POST['senha'];                    //puxa a senha do form de cadastro




    //conecta ao API
    //dados para conexão ao API
        
    $ip 'ip do mk';
        
    $usuario 'usuario de acesso mk';
        
    $senharb 'senha mk';


    //salva usuário e senha na RB
    if ($API->connect($ip$usuario$senharb)){
            
    $API->comm("/ip/hotspot/user/add", array(
             
    "name"     => $usuario,
             
    "password" => $senha,
             
    "server" => "server",
    //profile => igual ao que você criou no mk como estou usando o nome de exemplo voucher
             
    "profile"  => "voucher",
           &
    nbsp);
            
    $API->disconnect();
        }
        
    ?>
    Última edição por trober; 21-03-2016 às 09:11. Razão: Formatação do código PHP