Indice   FAQ  
Iscriviti  Login
Indice RouterOS RouterOS

Mikrotik Api con Php

Tutto su questo sistema operativo linux based - Configurazioni, dubbi, problematiche &....

Mikrotik Api con Php

Messaggioda sincerbex » mer 6 set 2017, 15:07

Ciao a tutti,
ho implementato un welcome portal esterno in php per l'hotspot di mikrotik.
Ovviamente sto utilizzando le api, tutto procede bene ma ora sono fermo nella gestione dinamica dei walled garden. Premessa, se utilizzo i social login devo necessariamente inserire degli host nei walled garden affinchè i server per l'autenticazione siano raggiungibili. Però se cosi faccio l'app di facebook funzionerebbe anche prima di effettuare il login all'hotspot. Quindi ho pensato di inserire gli host nel walled garden in modo dinamico ovvero subito prima dalla richiesta di autenticazione e rimuoverli sibito dopo l'esecuzione dello script.
attualmente scrivo il walled garden in questo modo:

Codice: Seleziona tutto
<?php session_start();
require_once 'inc/routeros_api.class.php';
      $API = new RouterosAPI();
      $API->debug = false;
      if ($API->connect($ip, $port_mik, $user, $password)) {
         $API->comm("/ip/hotspot/walled-garden/add", array(
            "action" => "allow",
            "dst-host" => "*facebook.it",
            "src-address" => $_SESSION['ip'],
            

            ));
                  $API->disconnect();
      }else{
         echo 'error c RouterosAPI!!';
      }
?>




ora sono fermo allo script per l'eliminazione.
per eliminare l'host io conosco solo il src-address attraverso la viariabile (creata da me) $_SESSION['ip']. quindi dovrei eseguire un ip/hotspot/walled-garden/remove [find src-address=$_SESSION['ip']]
tradotto in php api

Codice: Seleziona tutto

$API->write("/ip/hotspot/walled-garden/remove", false);

$API->write("=src-address=$_SESSION['ip']");

$API->read();



ma non mi funziona..
dove sbaglio???
ho provato diverse variante ma il risultato non cambia.

grazie a tutti per il supporto
sincerbex
Mikrotik-User 8° Liv
Mikrotik-User 8° Liv
 
Messaggi: 97
Iscritto il: mar 12 giu 2012, 13:47
Uso routerOS dalla Versione: v3.x
Certificazioni Mikrotik: MTCNA
Preferred Training Centre: SICE TELECOMUNICAZIONI

Re: Mikrotik Api con Php

Messaggioda sincerbex » ven 8 set 2017, 12:07

Nessun suggerimento?
attualmente ho risolto utilizzando:

Codice: Seleziona tutto
$util = new RouterOS\Util($client = new RouterOS\Client('xx.xx.xx.xx', 'admin', 'xxxxxxxxx',443));
$util->setMenu('/ip hotspot walled-garden');
$util->exec('remove [find where comment=$iporigine]');


il problema è che non riesco a far leggere la variabile $iporigine. Se sostituisco la variabile con es 10.5.50.212 lo script funziona perfettamente ma con la variabile no. ho verificato il contenuto della variabile ed è ok. l'errore penso sia nell'integrazione della variabile nel codice delle api.
quindi attualmente sto cercando di bypassare il problema creando con fwrite una pagina php con l'ip in chiaro senza utilizzo della variabile. sicuramente funzionerà ma mi pare "sporca" come procedura e in più si porrebbe il problema di eliminare tutti questi file php generati. Se solo capissi come inserire la variabile eviterei tutto questi passaggi.
comunque nel complesso il sistema funziona e solo chi veramente è loggato all'hotspot può usare i servizi di facebook compreso messanger mentre il resto degli host no. cosi ho creato dei walled garden dinamici ;)

ditemi la vostra... buona giornata
sincerbex
Mikrotik-User 8° Liv
Mikrotik-User 8° Liv
 
Messaggi: 97
Iscritto il: mar 12 giu 2012, 13:47
Uso routerOS dalla Versione: v3.x
Certificazioni Mikrotik: MTCNA
Preferred Training Centre: SICE TELECOMUNICAZIONI



Torna a RouterOS

Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti