Web proxy com API mikrotik
Olá pessoal da comunidade,
estou implementando um telinha em html e php para interagir com o a API Mikrotik com o PHP.
Beleza até ai tudo bem conecto no mikrotik tal, só que estou querendo excluir uma regra no Web
Proxy apartir de um id passado. O que acontece é que eu não estou conseguindo passar o comando
que o mikrotik possa entender.
Abaixo vai um exemplo:
Código PHP:
<?php
require("routeros_api.class.php");
$API = new routeros_api();
$API ->debug(true);
$ip = "192.168.88.200";
$login = "admin";
$senha = "admin";
if($API ->connect($ip, $login, $senha)){
//id ficticio que criei aqui
$id = "1";
$API ->write("/ip/proxy/access/remove", false);
$API ->write("=numbers=$id");
$ler = $API ->read(false);
$array = $API ->parse_response($ler);
print_r($array);
$API ->disconnect();
}//fim do if
?>
executo esse codigo é retornado um erro de que não foi encontrado o argumento:
Código :
Array
(
[!trap] => Array
(
[0] => Array
(
[category] => 0
[message] => no such item
)
)
)
Alguem tem alguma ideia do que seja, ou mesmo tem um exemplo desse comando usando a API mikrotik.
Desde já agradeço a ajuda.
Re: Web proxy com API mikrotik
Vc ja tentou pegar esse comando("/ip/proxy/access/remove") e digitar direto no terminal no winbox pra ver se ta tudo certo?
Creio que esta errado,o comando seria "ip web-proxy access remove 0" sem as barras e com os espaços.
Qualquer duvida posta ai pra gente.
Re: Web proxy com API mikrotik
E ai francisconeto beleza né,
vamos lá:
Para sua primeira pergunta a resposta é sim, eu testei o comando no winbox. No caso fica assim:
Código :
[admin@routerboard]/ip proxy access> remove numbers=1
no caso quando se usa a API do Mikrotik os comando são passados assim mesmo verifiquei na documentação:
http://wiki.mikrotik.com/wiki/API_command_notes
Mas ai, eu pesquisando aqui eu achei o site desse cara aqui:Everton Santos
que tem alguns exemplos. Baseados nele eu consegui resolver o
problema. E o código ficou assim o:
Código PHP:
<?php
require("routeros_api.class.php");
$param = $_GET['id'];
echo $param;
excluirRegra($param);
//função para excluir
function excluirRegra($id){
//criando um objeto da api do mikrotik
$API = new routeros_api();
$API ->debug = true;
//dados fazer a conexão com o routerboard
$ipMik = "192.168.88.200";
$login = "admin";
$senha = "admin";
if($API ->connect($ipMik, $login, $senha)){
$API ->write("/ip/proxy/access/print");
$array = $API ->read();
$linha = $array[$id];
$id1 = $linha[".id"];
$API ->write("/ip/proxy/access/remove", false);
$API ->write("=.id=$id1");
$ler = $API ->read(false);
$array = $API ->parse_response($ler);
print_r($array);
header("Location: /retorno/excluido.php?id=$id");
$API ->disconnect();
}//fim do if
else {
echo "Erro ao conectar no Mikrotik! Deletar.";
}//fim do else
}//fim da função excluirRegra
?>
Nesse codigo eu estou pegando o 'id' via método get do html e a partir dele eu consegui setar o valor de qual regra vou excluir. Ficou meio
confuso mas funcionou. Valeu pela dica e fica ai o codigo pra quem tiver alguma duvida