Pages

30 de dezembro de 2013

Integração Mikrotik RouterOS com PHP

Uma das mais poderosas ferramentas para gerenciamento de dispositivos que rodem o RouterOS é a API.

Com ela, abrem-se infinitas possibilidades e você pode desenvolver facilmente ferramentas que com certeza lhe ajudarão no dia a dia.

O grande problema, é que a "classe PHP" disponibilizada oficialmente é meio bagunçada, então relato aqui como utilizar a API com PHP de uma forma mais profissional, organizada e eficiente.

Requerimentos:
  • PHP 5.3.0 ou mais atual.
  • Um dispositivo com RouterOS v3 mais atual.
  • Serviço API habilitado.
  • Liberação de conexões de saída através do stream_socket_client().

 Instalação:

 Você vai precisar de algumas classes, mas utilizando o Pyrus, a instalação é bem simples. Vamos a elas.

Para instalar a classe, como root digite o comando:

$ php pyrus.phar install PEAR2_Net_RouterOS

Talvez, você também precise instalar o Autoload.

php pyrus.phar install PEAR2_Autoload

Feito isso é só desfrutar da API de forma profissional e organizada. Já vi muita gente desenvolvendo scripts de qualquer maneira e sistemas de gerenciamento com códigos realmente ridículos.

Segue um exemplo de como dar um print na arp table.

<?php
use PEAR2\Net\RouterOS;
require_once 'PEAR2/Autoload.php';
 
$client = new RouterOS\Client('192.168.0.1', 'admin');
 
$responses = $client->sendSync(new RouterOS\Request('/ip/arp/print'));
 
foreach ($responses as $response) {
    if ($response->getType() === RouterOS\Response::TYPE_DATA) {
        echo 'IP: ', $response->getArgument('address'),
            ' MAC: ', $response->getArgument('mac-address'),
            "\n";
    }
}
//Saída do exemplo: :
/*
IP: 192.168.0.100 MAC: 00:00:00:00:00:01
IP: 192.168.0.101 MAC: 00:00:00:00:00:02
*/
?>


Para mais informações, recomendo a leitura da página oficial do package onde há vários exemplos de utilização básica.

Crie!

https://github.com/pear2/Net_RouterOS/wiki/Util-basics
Postar um comentário