保存Mikrotik简单队列统计PHP API

时间:2017-07-29 06:42:21

标签: php api mikrotik

我想使用PHP API保存Mikrotik /simple queue的统计信息。我已经能够提取数据,但似乎我在PHP方面的实现是一个问题。以下是代码和生成的数组对象。

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

结果摘录自办公室的所有用户返回后,我选择只为一个用户显示。认为PEAR2\Net\RouterOS\Response Object为所有用户重新调整,即在这种情况下超过50个用户。我想将这些数据保存到数据库,但只保存[.id], [name], [target], [limit-at], [max-limit] and [bytes]这样的相关数据,这里的任何帮助都会受到高度重视。

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] => 
)

1 个答案:

答案 0 :(得分:0)

找到并回答了我自己的问题。这就是我所做的。

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

提供了大量不必要的信息,因此我发现routeros_api.class.php可以从here下载 $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']; } } ,但已经跟踪了here中已修改的信息。然后才使用

exceljs

唯一剩下的就是保存到简单的数据库。也许有一天有人可能会得到帮助。