Comentários do Blog

  1. Avatar de Christiano
    Só para deixar claro, eu usei o winBox para ativar a configuração básica da placa. Quando digo básica é básica mesmo. Não tem firewall ou qualquer configuração extra. Eu queria apenas o suficiente para começar a usar a API PHP e estudá-la. Mas nem isso eu tô conseguindo. Acho que a API PHP não funciona e já estou me preparando para buscar outra solução...
  2. Avatar de Christiano
    Sim, ativei. Fui em 'IP Service List' e cliquei em name 'api', o que após acendeu a 'luz' verde ao lado esquerdo do nome indicando sua ativação.

    De qualquer forma se não estivesse ativada ela não conectaria nem com admin.

    Na resposta, 1º bloco é possível ver a resposta do mikrotik 'Connected...' para o admin. Em seguida ele executa o comando add, desconecta e tenta reconectar com os dados do novo user. Mas é aé que ele não consegue. Ele tenta várias vezes seguidas, daí a repetição dos códigos nos blocos seguintes, e não consegue finalizando com 'Error...'.

    Eu já procurei aqui no fórum, na documentação da API e pelo google mas não consegui achar nenhum exemplo de utilização do comando 'add' ou 'set'.

    Estou um pouco nervoso porque, como ainda estou em período de experiência aqui na empresa, posso ser demitido por não conseguir construir esta ferramenta.
  3. Avatar de Mr_Dom
    Citação Postado originalmente por Christiano
    Bom dia!

    Obrigado por me ajudar.

    Eu substitui o código conforme recomendado mas não consigo logar com o usuário criado. Quando crio o usuário via winBox, eu consigo logar utilizando os dados do novo user, mas o mesmo não acontece quanto uso o add via api php. Acho que o add não está funcionando...

    A resposta que recebi foi:

    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.

    vc ativou a API no mk, e certificou que não existe nenhuma regra do firewall bloqueando ? veja
  4. Avatar de Duca
    Sem problemas.
    E obrigado pela compreensão. =)
  5. Avatar de Christiano
    Ah, aqui é Blog e não fórum, certo? Já abri um post lá no fórum. Obrigado pelo alerta Duca. Desculpe o incoveniente Mr_dom.
  6. Avatar de Duca
    Galera, utilizem os fóruns para tirar dúvidas.
  7. Avatar de Christiano
    Bom dia!

    Obrigado por me ajudar.

    Eu substitui o código conforme recomendado mas não consigo logar com o usuário criado. Quando crio o usuário via winBox, eu consigo logar utilizando os dados do novo user, mas o mesmo não acontece quanto uso o add via api php. Acho que o add não está funcionando...

    A resposta que recebi foi:

    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.
  8. Avatar de Mr_Dom
    Citação Postado originalmente por Christiano
    Olá Mr_Dom e participantes do fórum under-linux,

    Estou ingressando na carreira de desenvolvedor web e de cara me pediram para criar um sistema que controle o acesso ao mikrotik e registre as configurações e o login de quem fez a manutenção em campo. Como uso PHP já achei a API PHP mas não consigo executar o script a seguir:

    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();
    }
    }

    Como podem perceber este script é um exemplo básico para descobrir como funciona a api e os comandos do mikrotik mas não cosigo adicionar o usuário via API.

    Então, procurando por uma solução alternativa, ou algo que me dê mais conhecimentos sobre o mikrotik, encontrei este post. Isso que vocês postaram acima pode ser feito via API PHP? Estou muito 'verde' no assunto e um pouco apreensivo de não conseguir montar o sistema.
    opa, bom dia...

    creio que o correto uso do script seria algo assim:

    Código PHP:
    if ($API->connect($ip$usuario$senha)){
        
    $API->write('/user/add',false);
        
    $API->write('=name=teste3',false);
        
    $API->write('=password=987654',false);
        
    $API->write('=group=write');
        
    $ARRAY $API->read();
        
    $API->disconnect();

  9. Avatar de Christiano
    Olá Mr_Dom e participantes do fórum under-linux,

    Estou ingressando na carreira de desenvolvedor web e de cara me pediram para criar um sistema que controle o acesso ao mikrotik e registre as configurações e o login de quem fez a manutenção em campo. Como uso PHP já achei a API PHP mas não consigo executar o script a seguir:

    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();
    }
    }

    Como podem perceber este script é um exemplo básico para descobrir como funciona a api e os comandos do mikrotik mas não cosigo adicionar o usuário via API.

    Então, procurando por uma solução alternativa, ou algo que me dê mais conhecimentos sobre o mikrotik, encontrei este post. Isso que vocês postaram acima pode ser feito via API PHP? Estou muito 'verde' no assunto e um pouco apreensivo de não conseguir montar o sistema.
  10. Avatar de Magnun
    Olá lord4ark,

    Fazia tempo que você não aparecia! O return é fundamental para a programação estruturada, ele cai um pouco em desuso quando utilizamos orientação a objeto, mas é imprescindível entender seu uso pois, vez ou outra, será necessário utilizá-lo.

    Até mais...