:foreach wirelessClient in [/interface wireless registration-table find true] do={}
dann, in dieser foreach-Schleife, für jeden Kunden der Statistiken erhält die ID (Beispiel hier mit "mac-Adresse" und "Bytes" Felder)
:local macAddress [/interface wireless registration-table get [ find .id=$wirelessClient ] value-name=mac-address];
:local bytes [/interface wireless registration-table get [ find .id=$wirelessClient ] value-name=bytes];
mit Die zurückgegebenen "Bytes" Daten haben das Format "RX, TX" (zB "545124,25422"). Sie müssen also einen kleinen Trick ausführen, um die RX-Zeichenfolge zu extrahieren: Suchen Sie nach dem Zeichen "," und extrahieren Sie die Zeichenfolge vor diesem Komma.
:local posComma [ :find $bytes "," -1]
:local RXbytes [:pick $bytes 0 $posComma]
Dann ist es einfach zu überprüfen, ob dieser Client mehr als 50M
:local status "Below 50M";
:if ($RXbytes > 50000000) do={
:set $status "Above 50M"
}
:put "Client: $macAddress $bytes $RXbytes -> $status";
alle zusammen in einem Skript und führen Sie es heruntergeladen hat, werden Sie so etwas wie
[[email protected]] > import test.rsc
Client: D4:CA:6D:B2:AE:EF 202134,92985 202134 -> Below 50M
Client: 48:9D:24:64:E6:08 8057465,2022134 8057465 -> Below 50M
Client: 2C:56:DC:32:09:F0 3282973,888408 3282973 -> Below 50M
Client: 48:59:29:F6:DF:5D 139664,248984 139664 -> Below 50M
Client: A4:5E:60:EB:AE:33 159890028,12433385 159890028 -> Above 50M
erhalten Für das komplette Mikrotik Skript-Handbuch, überprüfen Sie http://wiki.mikrotik.com/wiki/Manual:Scripting
danke für Ihre Hilfe, Sie haben mich gerettet – neviseh70