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

Новини

  • Плати розширення з 8-реле підтримують до 64 реле на Raspberry Pi
    Плати розширення з 8-реле підтримують до 64 реле на Raspberry Pi

    "Raspberry Pi 8-Relay Card" від Sequent Microsystems забезпечує керування 8 реле і може бути розширена для включення 64 реле на Raspberry Pi для додатків домашньої автоматизації. Плата може використовувати Raspberry Pi 2, 3, або Zero. У випадку Zero чи Zero W потрібно придбати та приєднати 40-контактний роз’єм, або придбати Raspberry Pi Zero WH з вже припаяним роз’ємом. Вам також знадобиться картка microSD на 8 ГБ, джерело живлення 5 В та трансформатор на 24 В. Вартість плати стартує з 17$.

    in Новини

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