Acesso Mikrotik via site php (Não consigo via API)
Bom dia amigos.
Já tentei de tudo para acesso ao meu Mikrotik:
- Ativei a API no Mikrotik
- Baixei a API 'routeros_api.class.php' da Mikrotik
- Criei o sprit PHP de teste
<?php
require('routeros_api.class.php');
$API = new routeros_api();
$API->debug = true;
if ($API->connect('coloco_o_ip_valido', 'admin', 'coloco_a_senha')) {
$API->write('/interface/getall');
$READ = $API->read(false);
$ARRAY = $API->parse_response($READ);
print_r($ARRAY);
$API->disconnect();
}
?> - E ao tentar acessar o mesmo fica como que tentando e não conecta de forma alguma. As vezes me é retornado o Erro Internal 500, como que houvesse alguma falha de atributo de leitura do arquivo php, o que já verifiquei.
Inclusive já verifiquei alguns posts aqui do fórum e teste também sem excito.
O que pode está ocorrendo? Alguém já consegui realizar a conexão e listar alguns itens usando a API, estou precisando do auxílio dos amigos, desde já, agradeço.
Re: Acesso Mikrotik via site php (Não consigo via API)
Olá,
no exemplo que você portou existe um espaço no nome do arquivo de referência da API.
Segue o código correto:
<?php
require('routeros_api.class.php');
$API = new routeros_api();
$API->debug = true;
if ($API->connect('coloco_o_ip_valido ', 'admin', 'coloco_a_senha')) {
$API->write('/interface/getall');
$READ = $API->read(false);
$ARRAY = $API->parse_response($READ);
print_r($ARRAY);
$API->disconnect();
}
?>
espero ter ajudado
Re: Acesso Mikrotik via site php (Não consigo via API)
Opa. Bão? Como que tá?
Será que a porta está com um valor diferente do padrão 8728?
Eu costumo fazer um pouco diferente quando estou utilizando a api.
Tente o trecho de código abaixo e qualquer coisa me avise:
Código :
<?php
require_once('routeros_api.class.php');
$mkt_ip = '192.168.254.14';
$mkt_user = 'admin';
$mkt_passwd = 'senhaadmin';
$mkt_port = '8728'; /* talvez a porta utilizada não seja a padrão. Por isso, especificar aqui */
$api = new routeros_api();
$api->port = $mkt_port;
if($api->connect($mkt_ip, $mkt_user, $mkt_passwd)) {
$api->write('/interface/print');
$resultado = $api->read();
echo "<pre>";
print_r($resultado);
echo "</pre>";
$api->disconnect();
}
else {
echo "Falha ao estabelecer conexão com o Mkt ($mkt_ip) na porta ($mkt_port)";
}
?>
Espero que ajude.
Abraço.
rod~
Re: Acesso Mikrotik via site php (Não consigo via API)
Boa tarde.
Desde já te agradeço, mas o problema ainda persiste, pois realmente verifiquei a API está ativa e rodando da porta padrão "8728", tentei com o seu script e continua a ser mostrada a seguinte mensagem de erro:
-------------------------
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
-------------------------
É uma característica geralmente da falha de acesso USUÁRIO x SENHA, mas não seria esse o motivo, pois consigo acessar sem problema tanto via SSH como via WINBOX com a mesma senha, será que para a API teria de ser uma senha diferente da que utilizo para acesso ao Mikrotik via SSH e WINBOX?
Realmente não seu o que pode está ocorrendo, aparentemente seria uma atividade simples. Teria alguma outra idéia do que possa está acontecendo?
Re: Acesso Mikrotik via site php (Não consigo via API)
Qual a clasee "routeros_api.class.php" que está utilizando? Teria como anexar ela à sua resposta, para que eu possa comparar com a que tenho aqui e ver se poderia ser algo relacionado a API?