API MIKROTIK – Activar o desactivar un puerto ethernet

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:

API-Activar_Ethernet

Para descargar el codigo fuente haz click aqui!

Saludos!.
____________________
Publicado Primero en www.tech-nico.com

8 Comentarios

  1. Buenas Noches, Debo desactivar este ether1, porque se daño en mi Mikrotik. Baje el adjunto y no hay archivo con el formato que dicen que se debe usar para importar vía Winbox. Como lo hago.? Muchas Gracias de Antemano

  2. Olvide adjuntarlo dentro del rar pero podes descargar cualquier otro ejemplo de mi blog. La libreria de RouterOS que incluyo en los ejemplos es siempre la misma.

  3. hola buenas tardes mi router le descargue la actulizacion y se me desactivaron todos los puertos no puedo accesar al wimbox no me lo detecta como le hago para recuperar mi equipo

  4. Hola Carlos, Lamentablemente para configurar este script tenes que tener acceso al equipo. Proba con el boton de reset y si seguís sin acceso descarga el NetInstall y cargale otro firmware.

  5. Hola me hace falta desactivar mediante la web las WLAN de un LHG5 intente cambiar el nombre de la interfaz en script y no funciono le mando por imbox foto de las interfaces saludos y gracias por la ayuda

Deja un comentario