A pedido del lector Vitor Monteiro, vamos a presentar un pequeño y facil ejemplo para habilitar o deshabilitar un puerto ethernet con cierto nombre.
¿Como funciona?
Lo que vamos a hacer es definir una variable llamada $name que va a contener el nombre de la interfaz que queremos activar o desactivar. El script verifica primero si ese nombre existe, luego, (si existe), almacenamos «el ID» y si «esta activa o no» en distintas variables. Si esta activa, entonces tomamos el ID y la desactivamos, de lo contrario, la habilitamos.
El codigo es el siguiente:
<?php require_once('api_mt_include2.php'); ?>
<?php
////////////////////////////////////////////////////////////////////
// ESTE EJEMPLO SE DESCARGO DE www.tech-nico.com ///////////////////
// Creado por: Nicolas Daitsch. Guatrache. La Pampa ////////////////
// Contacto: administracion@tech-nico.com //////////////////////////
// RouterOS API: Busco interfaz ethernet y la activo o desactivo //
////////////////////////////////////////////////////////////////////
$ipRouteros="200.20.30.40"; // tu RouterOS.
$Username="blog.tech-nico.com";
$Pass="tupassword";
$api_puerto=8728;
$name="ether1"; // -------> aqui el nombre de tu interfaz!!
$API = new routeros_api();
$API->debug = false;
if ($API->connect($ipRouteros , $Username , $Pass, $api_puerto)) {
$API->write("/int/ether/getall",false);
$API->write('?name='.$name,true);
$READ = $API->read(false);
$ARRAY = $API->parse_response($READ);
if(count($ARRAY)>0){ // SI LA INTERFAZ EXISTE!!
$id_interfaz = $ARRAY[0][".id"];
$disabled = $ARRAY[0]["disabled"];
if ($disabled=="true"){ // SI ESTA DESACTIVADA!!
$API->write("/int/ether/enable",false);
$API->write("=.id=".$id_interfaz,true);
echo '<strong>'.$name.'</strong> esta ahora activada <img alt="" src="icon_led_green.png" /> ';
}else{ // SI ESTA ACTIVADA!!
$API->write("/int/ether/disable",false);
$API->write("=.id=".$id_interfaz,true);
echo '<strong>'.$name.'</strong> esta ahora desactivada <img alt="" src="icon_led_grey.png" /> ';
}
$READ = $API->read(false);
}else{ //el servidor API esta of line
echo 'Ocurrio un error: '.$ARRAY['!trap'][0]['message'];
}
}else{
echo "<span style="color: #ff0000;">La conexion ha fallado. Verifique si el Api esta activo.</span>";
}
$API->disconnect();
?>
El resultado es este:
Para descargar el codigo fuente haz click aqui!
Saludos!.
____________________
Publicado Primero en www.tech-nico.com
