2017-07-29 8 views
0

Je veux enregistrer les statistiques du Mikrotik /simple queue en utilisant l'API PHP. J'ai été capable de tirer les données mais il semble que mon implémentation du côté PHP soit un problème. Ce qui suit est le code et l'objet tableau résultant.Enregistrement de la statistique de la file d'attente simple de Mikrotik PHP API

foreach ($util->setMenu('/queue simple')->getAll() as $queueEntry) { 
     // $lasArray = $queueEntry; 
     print_r($queueEntry); 
} 

Extrait pour résultat depuis son retour pour tous les utilisateurs au bureau, j'ai choisi juste pour afficher pour un utilisateur. Prenez-le que PEAR2\Net\RouterOS\Response Object est renvoyé pour tous les utilisateurs, c'est-à-dire tous dans ce cas plus de 50 utilisateurs. Je voudrais enregistrer ces données à la base de données, mais seulement les pertinentes comme [.id], [name], [target], [limit-at], [max-limit] and [bytes], toute aide ici serait hautement considérée.

PEAR2\Net\RouterOS\Response Object 
(
    [unrecognizedWords:protected] => Array 
     (
     ) 

    [_type:PEAR2\Net\RouterOS\Response:private] => !re 
    [attributes:protected] => Array 
     (
      [.id] => *12 
      [name] => GikundaPhone 
      [target] => 192.168.1.108/32 
      [parent] => none 
      [packet-marks] => 
      [priority] => 8/8 
      [queue] => default-small/default-small 
      [limit-at] => 128000/384000 
      [max-limit] => 384000/384000 
      [burst-limit] => 0/0 
      [burst-threshold] => 0/0 
      [burst-time] => 0s/0s 
      [bucket-size] => 0.1/0.1 
      [bytes] => 16515474/129310087 
      [total-bytes] => 0 
      [packets] => 127812/133712 
      [total-packets] => 0 
      [dropped] => 76/8667 
      [total-dropped] => 0 
      [rate] => 0/0 
      [total-rate] => 0 
      [packet-rate] => 0/0 
      [total-packet-rate] => 0 
      [queued-packets] => 0/0 
      [total-queued-packets] => 0 
      [queued-bytes] => 0/0 
      [total-queued-bytes] => 0 
      [invalid] => false 
      [dynamic] => false 
      [disabled] => false 
     ) 

    [_tag:PEAR2\Net\RouterOS\Message:private] => 
) 

Répondre

0

J'ai trouvé et répondu à ma propre question. C'est ce que j'ai fait. Le

foreach ($util->setMenu('/queue simple')->getAll() as $queueEntry) { 
     // $lasArray = $queueEntry; 
     print_r($queueEntry); 
} 

fourni beaucoup d'informations des thats inutiles, j'ai trouvé sur le téléchargement de routeros_api.class.phphere et suivi, mais ont modifié les informations de here. Puis juste utilisé

$address = 'IPV4_Address_of_router'; 
    $user = 'username_of_router'; 
    $pass = 'password_of_router'; 
    require('routeros_api.class.php'); 

    $API  = new routeros_api(); 
    $API->debug = false;  

    // router credentials and after including the routeros_api.cass.php 
     if ($API->connect($address, $user, $pass)) { 

       $results = $API->comm("/queue/simple/print"); 
       foreach ($results as $row) { 
        $clientName = $row['name']; 
        $clientIP = $row['target']; 
        $clientMaxDown = $row['limit-at']; 
        $clientMaxUp = $row['max-limit']; 
        $clientDownloads = $row['bytes'];    
       } 
      } 

Il ne restait plus qu'à enregistrer dans la base de données ce qui est simple. Peut-être que quelqu'un pourrait être aidé un jour par ceci.