Телефонуйте » (+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

Новини

  • Платформа IoT для Raspberry Pi має прикладну програму IFTTT для мобільних пристроїв/хмар
    Платформа IoT для Raspberry Pi має прикладну програму IFTTT для мобільних пристроїв/хмар

    Плата прототипування Cloudio від GrospIO для Raspberry Pi включає 1-дюймовий OLED-дисплей, сенсори, 6 входів/виходів та порт сервоприводу, керується за допомогою мобільного/хмарного додатку. Cloudio дозволяє додавати до функцій IoT підтримку голосу та голосового керування, а також програмне виведення мови. Cloudio оснащена 3-ма цифровим виходами, 3-ма входами для аналогових сигналів і міні портом для сервоприводу, який ідеально підходить для панорамування/нахилу, програм інтелектуального блокування. Інші функції включають тактильний перемикач, RGB світлодіодний індикатор і зумер.

    in Новини

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