-
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.
-
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");
));
}
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");
}
-
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>
-
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.
-
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