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.
Re: API PHP do mikrotik permite criar usuários?
apaga o hotspot e configura novamente cara pra ver se vai
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
Re: API PHP do mikrotik permite criar usuários?
Desculpe erro grave na minha leitura, suspendo meu comentário.
Pois me enganei.
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 • 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();
}
}
?>
Re: API PHP do mikrotik permite criar usuários?
Cristiano, alguma idéia de como montar esta estrutura em um formulário?
Abraços!
Re: API PHP do mikrotik permite criar usuários?
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!