+ Responder ao Tópico



  1. #1

    Padrão API PHP do mikrotik permite criar usuários?

    Olá a todos os participantes do fórum under-linux,

    Estou ingressando na carreira de desenvolvedor e como uma das minha primeira tarefas me foi solicitado um sistema para controlar o acesso ao mikrotik e registar as manutenções lógicas realizadas em campo.

    Como uso PHP, já encontrei a API PHP mas o script de estudo abaixo não está funcionando. Estou conseguindo me conectar ao mikrotik como admin, logo em seguida crio um usuário de teste (ou acho que crio), me desconecto e tento me reconectar com este novo user. Mas esta nova tentativade reconexão falha.

    Vejam o script:

    require('routeros_api.class.php');

    $API = new routeros_api();

    $API->debug = true;


    $ip = 'número ip';
    $usuario = 'login do usuário';
    $senha = 'senha do usuário';


    if ($API->connect($ip, $usuario, $senha))
    {
    $API->write('/user/add
    =name=teste3
    =password=987654
    =group=write');

    $API->disconnect();

    $ip = 'mesmo ip anterior';
    $usuario = 'o usuário que tentei registrar acima';
    $senha = 'senha do usuário que registrei acima';

    if ($API->connect($ip, $usuario, $senha))
    {
    $API->write('/interface/getall');

    $ARRAY = $API->read();

    print_r($ARRAY);

    $API->disconnect();
    }
    }





    A resposta dada:

    Connection attempt #1 to xxx.xxx.xxx.xxx:8728...
    <<< [6] /login
    >>> [5/5 bytes read.
    >>> [5, 39] !done
    >>> [37/37 bytes read.
    >>> [37, 1] =ret=b347ee9cb54090e91338c89ec00b82de
    <<< [6] /login
    <<< [11] =name=admin
    <<< [44] =response=0048d97402ad5f4c8d9d81df31a62fe738
    >>> [5/5 bytes read.
    >>> [5, 1] !done
    Connected...
    <<< [9] /user/add
    <<< [12] =name=teste3

    <<< [16] =password=987654
    <<< [12] =group=write
    Disconnected...
    Connection attempt #1 to xxx.xxx.xxx.xxx:8728...
    <<< [6] /login
    >>> [5/5 bytes read.
    >>> [5, 39] !done
    >>> [37/37 bytes read.
    >>> [37, 1] =ret=8f82d7261f1848d57f6796ee826ea949
    <<< [6] /login
    <<< [12] =name=teste3
    <<< [44] =response=008ee22c8854323b7a4e3c0ea8bc82fbd4
    >>> [5/5 bytes read.
    >>> [5, 31] !trap
    >>> [22/22 bytes read.
    >>> [22, 8] =message=cannot log in
    >>> [5/5 bytes read.
    >>> [5, 1] !done
    Connection attempt #2 to xxx.xxx.xxx.xxx:8728...

    <<< [6] /login
    >>> [5/5 bytes read.
    >>> [5, 39] !done
    >>> [37/37 bytes read.
    >>> [37, 1] =ret=94953abc3c6ed5ee3e0d9263377dd87e
    <<< [6] /login
    <<< [12] =name=teste3
    <<< [44] =response=00fdd69c6efa0a65803e8ba7d5fd5701ba
    >>> [5/5 bytes read.
    >>> [5, 31] !trap
    >>> [22/22 bytes read.
    >>> [22, 8] =message=cannot log in
    >>> [5/5 bytes read.
    >>> [5, 1] !done
    Connection attempt #3 to xxx.xxx.xxx.xxx:8728...
    <<< [6] /login
    >>> [5/5 bytes read.
    >>> [5, 39] !done
    >>> [37/37 bytes read.
    >>> [37, 1] =ret=b6642861f5f5f7f5131ef443301d1d81
    <<< [6] /login

    <<< [12] =name=teste3
    <<< [44] =response=00f3b3ffe37198544b7e1c22672b324dfc
    >>> [5/5 bytes read.
    >>> [5, 31] !trap
    >>> [22/22 bytes read.
    >>> [22, 8] =message=cannot log in
    >>> [5/5 bytes read.
    >>> [5, 1] !done
    Connection attempt #4 to xxx.xxx.xxx.xxx:8728...
    <<< [6] /login
    >>> [5/5 bytes read.
    >>> [5, 39] !done
    >>> [37/37 bytes read.
    >>> [37, 1] =ret=744790b56c714e9156fb1672c7f992b3
    <<< [6] /login
    <<< [12] =name=teste3
    <<< [44] =response=0065713f3b2fb8eb7f8dd646c16d043e3d
    >>> [5/5 bytes read.
    >>> [5, 31] !trap
    >>> [22/22 bytes read.
    >>> [22, 8] =message=cannot log in
    >>> [5/5 bytes read.
    >>> [5, 1] !done
    Connection attempt #5 to xxx.xxx.xxx.xxx:8728...

    <<< [6] /login
    >>> [5/5 bytes read.
    >>> [5, 39] !done
    >>> [37/37 bytes read.
    >>> [37, 1] =ret=cc5240a64c5136037dbdf8d1999f6979
    <<< [6] /login
    <<< [12] =name=teste3
    <<< [44] =response=00141d32b4187003bee0a6acefff3935bc
    >>> [5/5 bytes read.
    >>> [5, 31] !trap
    >>> [22/22 bytes read.
    >>> [22, 8] =message=cannot log in
    >>> [5/5 bytes read.
    >>> [5, 1] !done
    Error...

    Ou seja eu consigo me conectar com o mikrotik como admin mas não consigo criar
    um novo usuário, me desconectar e me reconectar com este novo usuário.

  2. #2

    Padrão Re: API PHP do mikrotik permite criar usuários?

    apaga o hotspot e configura novamente cara pra ver se vai

  3. #3

    Padrão Re: API PHP do mikrotik permite criar usuários?

    Olá,

    Obrigado pela atenção e por tentar me ajudar.

    O hotspot é um serviço que não está configurado, ou seja, não tenho como apagar porque ele não existe na placa mikrotik que estou testando o script acima.

    Christiano

  4. #4
    Moderador Avatar de minelli
    Ingresso
    Aug 2006
    Localização
    Pres. Venceslau - SP | Pres. Prudente - SP
    Posts
    1.412
    Posts de Blog
    10

    Padrão Re: API PHP do mikrotik permite criar usuários?

    Desculpe erro grave na minha leitura, suspendo meu comentário.
    Pois me enganei.

  5. #5

    Padrão Re: API PHP do mikrotik permite criar usuários?

    Olá comunidade under-linux!

    Sim é possível criar usuários e alterá-los via API PHP.

    Vejam a discussão completa no fórum oficial do mikrotik: MikroTik RouterOS &bull; View topic - Change hotspot password with PHP API

    Código:

    <?php
    require('routeros_api.class.php');

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


    $ip = 'xxx.xxx.xxx.xxx';
    $old_password = '123456';
    $old_name = 'testea';
    $new_password = '123456';
    $new_name = 'testeb';

    if ($API->connect($ip, $old_name, $old_password))
    {
    $API->write('/user/add', false);
    $API->write('=group=full', false);
    $API->write('=name=zuca', false);
    $API->write('=password=123456');

    $new_name = 'zuca';

    $ARRAY = $API->read();
    print_r($ARRAY);

    $API->disconnect();

    if ($API->connect($ip, $new_name, $new_password))
    {
    $API->write('/interface/getall');
    $ARRAY = $API->read();
    print_r($ARRAY);
    $API->disconnect();
    }
    }
    ?>

  6. #6

    Padrão Re: API PHP do mikrotik permite criar usuários?

    Cristiano, alguma idéia de como montar esta estrutura em um formulário?

    Abraços!

  7. #7

  8. #8

    Padrão Re: API PHP do mikrotik permite criar usuários?

    Valeu Cristiano!
    Vou dar uma olhada nos links e logo postarei o meu resultado.

    Abraços!