Телефонуйте » (+38) 096 227 41 41

Якщо ви використовуєте обладнання Mikrotik, то у вас може виникнути необхідність підрахунку трафіку. Напишем необхідний скрипт на Python, який підрахує трафік користувача і, якщо необхідно обмежувати трафік, виконає перевірку - перевищений ліміт чи ні.

#!/usr/bin/env python
# -*- coding: utf_8 -*-

# підключаємо модулі для роботи з протоколом ssh
from paramiko import SSHClient
from paramiko import AutoAddPolicy

# дані для з’єднання з Mikrotik Routerboard
mip = '192.168.4.1'
ml = 'admin'
mp = 'admin'

# з’єднуємося з Mikrotik і витягуємо дані з правил шейпера
ssh = SSHClient()
ssh.set_missing_host_key_policy(AutoAddPolicy())
ssh.connect(mip, port=22, username=ml, password=mp)
exe = "put [/queue simple get user101 byte]"
excmd2 = ssh.exec_command(exe)[1].read()
ssh.close()

# створюємо зміну limit і присвоюємо їй значення 3000 мбайт:
limit = 3000  
print excmd2
# створюємо пустий список
sp = []  
# дані витягуються про вхідний і вихідний трафік у вигляді: 672777878/3180111677
# відділяємо вхідний і вихідний трафік, значення розміщуємо в списку sp:
sp = excmd2.split("/")
# присвоюємо змінній up значення вихідного трафіка:
up = int(sp[0])
# присвоюємо змінній down значення вхідного трафіка:
down = int(sp[1])   
# додаємо змінні і переводимо в мегабайти:
total = (up + down)/1048576
# виводимо значення сумарного трафіка на екран:
print total
# виконуємо перевірку, чи не більша змінна total змінної limit
if total >limit:
print "Перевищений ліміт"
else:
print "Ліміт не перевищений"


Список правил шейпера Mikrotik Routerboard.


Дані про трафік користувача.


Виконуємо скрипт.

Звичайно, просте виведення повідомлення про перевищення ліміту нам нічого не дає. Ці повідомлення доцільніше замінити на конкретні дії: від’єднання користувача, який перевищив ліміт, або зменшення швидкості.
Покрокова відеоінструкція для підрахунку трафіку в Mikrotik RouterBoard за допомогою сценарію Python:


Джерело: asp24.ru

Новини

  • SDR в IoT

    iotSDR пропонує платформу розробок для IoT-радіо та мережевих доменів. На платі два передавачі Microchip AT86RF215, для вводу-виводу модему на Xilinx ZYNQ SoC, приймач GNSS MAX2769 для GPS, Galileo, BieDou та Glonass. Плата сумісна з ПЗ GNURadio SDR. Дозволяє розробити протоколи фізичного рівня LoRa, SigFox, WightLess, Bluetooth, BLE, 802.15.4, ZigBee тощо для IoT, або шлюз IoT через TheThingsNetwork, LPWAN або Google Thread. Пам'ять EEPROM: 1x AT24MAC602 , flash-пам'ять: 1x QSPI 128 Мб, RAM: 256 MБ DDR3,слот для Micro SD карти, входи/виходи: 2x 8-бітних інтерфейси PL, інтерфейс 8-бітного PS, Gigabit Ethernet, USB 2.0 (USB3310), USB 2.0 (CP2104), 2x SMA RF-роз'єми для приймача діапазонів IoT, 2x SMA RF-роз'єми для приймача 2,4 ГГц , RF-роз'єм приймач GNSS, FPGA-роз'єм JTAG для програмування. Розміри плати: 76,2 мм x 101,6 мм.

     

    in Новини

Записатися на курс