ASP 24

Продажа оборудования
        для интернет-провайдеров

Войти

Перезвоните мне


  
Обязательное поле не может быть пустымНеверный номер телефонаНомер должен содержать от 10 до 13 цифр
*
Неверный адрес e-mail
  

Даже не знаю, обращаюсь впервые
Иван Добында
Максим Боднарюк
Эльвина Османова
Андрей Геряк
Сообщение содержит запрещенне ссылки

Укажите, пожалуйста, какой вопрос Вас интересует;
номер Вашего заказа; время, в которое Вам удобно принять звонок

Наш продавец-консультант перезвонит
Вам в ближайшее рабочее время.

График работы магазина:
Пн - Пт с 10:00 до 18:00.

Приносим наши извинения, если Вы уже пытались нам позвонить и не дозвонились. Теперь мы перезвоним Вам сами.


Перезвоните мне Отменить
Обработка заказа звонка...
Ваш заказ обратного звонка принят!
Наш продавец-консультант свяжется с Вами в течении рабочего дня.

Если уже больше 18 часов или сегодня выходные, ожидайте нашего звонка в ближайший рабочий день.

Спасибо, что обратились именно к нам!

Продолжить покупки
Во время заказа звонка возникла ошибка.
Пожалуйста, проверте введенные данные или повторите попытку немного позже.

Попробовать снова Отменить
+38 (050) 22–57–770
+38 (050) 22–58–880
+38 (050) 43–42–444
+38 (098) 89–66–219

Перезвоните мне

 
Оплата Доставка Сервис Контакты

Скрипт для отключения пользователей в Mikrotik RouterBoard по дате

Напишем скрипт, который будет выполнять отключение пользователей на устройствах Mikrotik Routerboard (Mikrotik RouterBoard 750, Mikrotik RouterBoard 750G, Mikrotik RouterBoard RB/450g) по дате.

 

 Mikrotik RouterBoard 433 Address List

Рис.1. Mikrotik RouterBoard 433 Address List.

 

Пишем скрипт, который при отрицательном балансе будет отключать пользователей по дате.

#!/usr/bin/env python
# -*- coding: utf_8 -*-
import MySQLdb
import mysql_db
import datetime
from paramiko import SSHClient
from paramiko import AutoAddPolicy

now_date = datetime.date.today()
cur_year = now_date.year
cur_month = now_date.month
cur_day = now_date.day
user_day = cur_day
user_month = cur_month

cur = mysql_db.db.cursor()
sql = ("""SELECT login_user, ip_user, balance FROM users WHERE day = %s AND month = %s""") % (user_day, user_month)
cur.execute(sql)
action = cur.fetchall()
cur.close()

for x in action:
login_user = x[0]
ip_user = x[1]
balance = x[2]
if balance <= 0:

mip = '192.168.4.253'
ml = 'user1'
mp = '1q2w3e'
exe = "/ip fi a disable [find address=%s]" % (ip_user)
print exe
ssh = SSHClient()
ssh.set_missing_host_key_policy(AutoAddPolicy())
ssh.connect(mip, port=22, username=ml, password=mp)
cmd = "%s" % (exe)
ssh.exec_command(cmd)
ssh.close()

else:
print "Не отключать"



Разбираем скрипт:

cur = mysql_db.db.cursor()
sql = ("""SELECT login_user, ip_user, balance FROM users WHERE day = %s AND month = %s""") % (user_day, user_month)
cur.execute(sql)
action = cur.fetchall()
cur.close()

Извлекаем логин, IP-адрес и баланс пользователей, если поле day равно переменной user_day, а поле month равно - user_month.

for x in action:
login_user = x[0]
ip_user = x[1]
balance = x[2]


В цикле for извлекаем значения из action и заносим в x, присваиваем значения переменным login_user, ip_user, balance.

if balance <= 0:  - Выполняем проверку: баланс пользователя меньше или равно ноль. Если да - отключаем пользователя в Mikrotik Routerboard.

mip = '192.168.4.253'
ml = 'user1'
mp = '1q2w3e'
exe = "/ip fi a disable [find address=%s]" % (ip_user)
print exe
ssh = SSHClient()
ssh.set_missing_host_key_policy(AutoAddPolicy())
ssh.connect(mip, port=22, username=ml, password=mp)
cmd = "%s" % (exe)
ssh.exec_command(cmd)
ssh.close()


Если нет, то выведем сообщение “Не отключать”.

 

 База данных

Рис.2. База пользователей.

 

В базе данных три пользователя. У первого баланс отрицательный, у второго - положительный, у третьего - нулевой. После выполнения скрипта первый и третий пользователь будут отключены.

 

 Скрипт для отключения пользователей по дате

Рис.3. Работа скрипта.

 

Как видно на рисунке, для первого и третьего пользователя скрипт выполнил команду отключения в Mikrotik Routerboard. Второй пользователь благополучно продолжил работу.

 

 Результат работы скрипта, отключение пользователей с отрицательным и нулевым баллансом

Рис.4. Результат работы скрипта.

 

Скрипт успешно справился с поставленной задачей и отключил пользователей по дате.

 

Евгений Рудченко специально для ASP24.

Отправить страницу на e-mail

Обязательное поле не может быть пустымНеверный адрес e-mail
*
Обязательное поле не может быть пустым
*

*
Обязательное поле не может быть пустым
Неверный адрес e-mail
  

Отправить Отменить
Отправка e-mail
E-mail успешно отправлен.

Продолжить покупки
Не удалось отправить e-mail

Попробовать снова Отменить


Хотите поделиться своими фотографиями или статьями? Отправляйте их на hertyweb@asp24.com.ua. Мы обязательно разместим их у нас на сайте!

Комментарии

*****

Оценка: 5.0    Голосов: 2   Комментарии: 2
-->
Автор: tx
Добавлено: 11.05.2011, 22:15

*****

Сделаем
Автор: Vladimir
Добавлено: 10.05.2011, 18:31

*****

Помогите создать правила при котором определенному IP-адресу (пользователю) запретить все сайты и при попытке зайти на любую станичку его направляло на один сайт, на котором, например, напимано, что у него долг за инет. Спасибо.

Добавить новый комментарий

*
*

Введите символы с картинки.

  Redraw

Символы: 

© 2007-2012 ASP 24.

 

Загрузка...

Total Duration: 0.203429937363
0.1242 (0.1242)