En la primera parte, explicamos cual podría ser su uso y para que sirve.
Ahora vamos a explicar como se configura el API en pocos pasos, con un poco de PHP y usando las clases creadas por Denis Basta. (version 1.3 o 1.4), con apenas un minimo cambio hecho para que la clase «connect» permita pasar ademas el numero de puerto del RouterOS como parametro.
Yo estoy familiarizado con programar en PHP pero para el que no, pueden hacerlo con el lenguaje que desee. En la Wiki de Mikrotik podran encontrar ejemplos para:
- Delphi
- C, C usando winsock
- C++, C Sharp
- Flash Actionscript 3
- Ruby on rails
- VB .NET
- Java
- NodeJS
- Python3
- Perl
- VB
- PHP
Paso 1: Configura tu RouterOS
a) Habilitar el servicio API.
desde IP > Services. Seleccionas la fila que dice «api» y la habilitas, luego doble click sobre ella para editar. Puedes asignarle el puerto que quieras, pero por defecto usa el 8728 tcp. Si te gusta tener todo ecualizado podrías agregarlo en los mangles para darle QoS. Finalmente donde dice «Avaliable From» es la direccion IP desde donde estara el API corriendo. En nuestro caso, como usaremos PHP puede ser el servidor Apache. (sigue los pasos de la imagen).
b) Crear un grupo
Para darle seguridad necesitamos crear un usuario y un grupo nuevo dentro del RouterOS donde queremos ordenar nuestras tareas diarias. Para ello vamos a «System > Users > Groups» y presionamos en el icono «+». En esta ventana simplemente escribimos el nombre del grupo, (para este ejemplo yo le puse «tugrupoapi») y elegi las politicas «read, write, api». Damos click en OK
c) Crear un usuario
Luego de crear el Grupo, nos movemos a la pestaña Users como esta en la imagen a continuacion. Presionamos el icono «+» para crear un usuario nuevo.
Name: aqui escribiremos nuestro nuevo nombre de usuario: Ejemplo blog.tech-nico.com, (puedes crear el tuyo).
Group: elegimos el grupo «tugrupoapi» (ver el punto «b»),
Address allowed: Es la IP que tiene permitido acceder a nuestro RouterOS a través del API. «El apache server en nuestro caso»,
Password: tipeamos nuestro password, asegurate que sea fuerte.
Finalmente click en el boton «OK».
Paso 2: Crear un script para testear el acceso: conectar_test_api.php
<?php require_once(‘api_mt_include2.php’); ?>
<?php
$ipRouteros=»200.20.30.40″; // tu RouterOS.
$Username=»blog.tech-nico.com»;
$Pass=»tupassword»;
$api_puerto=8728;$API = new routeros_api();
$API->debug = false;
if ($API->connect($ipRouteros , $Username , $Pass, $api_puerto)) {
$API->write(«/system/ident/getall»,true);
$READ = $API->read(false);
$ARRAY = $API->parse_response($READ);
$name = $ARRAY[0][«name»];
if(count($ARRAY)>0){ // si esta conectado
$API->write(«/system/licen/getall»,true);
$READ = $API->read(false);
$ARRAY = $API->parse_response($READ);
$nlevel = $ARRAY[0][«nlevel»];
$API->write(«/system/reso/getall»,true);
$READ = $API->read(false);
$ARRAY = $API->parse_response($READ);
$cpu = $ARRAY[0][«cpu»];
$cpu_frequency = $ARRAY[0][«cpu-frequency»];
$arquitectura = $ARRAY[0][«board-name»];
$API->write(«/system/pack/getall»,true);
$READ = $API->read(false);
$ARRAY = $API->parse_response($READ);
$version = $ARRAY[0][«version»];echo ‘<img src=»icon_led_green.png» /> ’;
echo «<strong>».$name.»(» .$arquitectura. «)</strong> »;
echo «v:» . $version. « »;
echo «level:» . $nlevel . « »;
echo $cpu.»(«.$cpu_frequency.» Mhz.)»;
}else{ //el usuario esta of line
echo ‘<img src=»icon_led_grey.png» /> ’.$ARRAY[‘!trap’][0][‘message’];
}}else{
echo «<font color=’#ff0000′>La conexion ha fallado. Verifique si el Api esta activo.</font>»;
}
$API->disconnect();
?>
Paso 3: Editamos las lineas que dicen:
$ipRouteros=»200.20.30.40″; // tu RouterOS.
$Username=»blog.tech-nico.com»;
$Pass=»tupassword»
$api_puerto=8728;
Paso 4: Finalmente subimos por FTP los archivos a nuestro servidor Web y ejecutamos en el navegador el archivo conectar_test_api.php;
Si todo salio bien, vamos a ver una pantalla parecida a la de arriba. Lo que hicimos fue loguearnos mediante el API a nuestro servidor, y luego traer el nombre «Identity», la plataforma, la version del ROS, que licencia tiene instalada, etc.
Descarga aqui todos los archivos de este ejemplo.
Como veran, este seria el primer paso para comenzar a programar tus scripts. Ya teniendo esto funcionando vamos a poder realizar varios ejemplos que voy ir posteando en mi tiempo libre.
Cualquier cosa comenten que les respondo enseguida.
API MIKROTIK – Como optimizar tu administracion con un poco de PHP (introduccion)
API MIKROTIK Tercera parte – Nuestro primer ejemplo (codigo abierto)
API MIKROTIK – Crear queues simples con PHP (con validacion)
_______________
Nicolas tech-nico.com/blog
