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 RouteBoard RB493AH, Mikrotik RouterBoard 1100, Mikrotik RouterBoard 433AH и другие устройства Mikrotik Routerboard.

Пока пользователей у вас немного, запомнить их логины и Ip-адреса – довольно просто. По мере разрастания базы пользователей это задание становится сложнее, соответственно возникает вероятность дублирования  данных. Чтобы этого избежать, необходимо перед добавлением пользователей в Mikrotik Routerboard выполнить проверку введенных данных с теми, что находятся в базе данных.

Итак, скрипт:


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

print "asp24.com.ua"

while True:
    login = raw_input("Введите имя пользователя: ")
    password = raw_input("Введите пароль пользователя: ")
    ipaddress = raw_input("Введите IP адрес пользователя: ")
    speed = raw_input("Скорость пользователя: ")

    db = MySQLdb.connect(user='user', passwd='1q2w3e', db='mymikrotik')
    cur = db.cursor()
    sql = ("SELECT login, ipaddress FROM users WHERE login = '%s' OR ipaddress='%s'") % (login, ipaddress) # Извлекаем данные о пользователях в базе данных
    cur.execute(sql)
    data = cur.fetchall()
    cur.close()


    if not data:

            mtlogin = raw_input("Введите имя администратора mikrotik: ")
            mtpassword = raw_input("Введите пароль администратора mikrotik: ")
            mtipaddress = raw_input("Введите IP адрес mikrotik: ")
            db = MySQLdb.connect(user='user', passwd='1q2w3e', db='mymikrotik')
            cur = db.cursor()
            sql = ("INSERT INTO users (login, password, ipaddress, speed, ipmikrotik) VALUES ('%s', '%s', '%s', '%s', '%s')" % (login, password, ipaddress, speed, mtipaddress))
            cur.execute(sql)
            cur.close()

            ssh = SSHClient()
            ssh.set_missing_host_key_policy(AutoAddPolicy())
            ssh.connect(mtipaddress, port=22, username=mtlogin, password=mtpassword)
            cmd = "/ppp secret add name=%s password=%s service=any profile=default local=172.16.1.1 remote=%s" % (login, password, ipaddress)
            ssh.exec_command(cmd)
            ssh.close()
            print "Пользователь %s добавлен" % (login)

        if raw_input("Хотите продолжить? y/n: ")=="n":
                break

    else:
        for sql_record in data:
            sql_login = sql_record[0]
            sql_ipaddress = sql_record[1]
    if login == sql_login:
        print "Логин занят"
    if ipaddress == sql_ipaddress:
        print "ip адрес занят"



Вот, что мы добавляем:

db = MySQLdb.connect(user='root', passwd='1q2w3e', db='mymikrotik')
    cur = db.cursor()
    sql = ("SELECT login, ipaddress FROM users WHERE login = '%s' OR ipaddress='%s'") % (login, ipaddress)
    cur.execute(sql)
    data = cur.fetchall()
    cur.close()

Подключение к базе и создание курсора –  мы уже знаем.

sql = ("SELECT login, ipaddress FROM users WHERE login = '%s' OR ipaddress='%s'") % (login, ipaddress) #  (извлекаем данные о пользователях из базы данных)

В этом запросе мы извлекаем поля login и ipaddress из таблицы users, если они совпадают с введенными значениями. Результат помещаем в data = cur.fetchall()

Делаем проверку:

 if not data:  - если совпадений не было, то продолжаем вводить значения для добавления пользователей в mikrotik.

else:  - иначе (то есть если совпадения были)
        for sql_record in data: запускаем цикл, в котором будут созданы две переменные sql_login и sql_ipaddress.
            sql_login = sql_record[0]
            sql_ipaddress = sql_record[1]

Сравниваем эти переменные со значениями, которые мы вводили с клавиатуры. Выводим сообщения.

    if login == sql_login:
        print "Логин занят"
    if ipaddress == sql_ipaddress:
        print "ip адрес занят"

 Как исключить дублирование данных при добавлении нового пользователя в Mikrotik RouterBoard

Рис.1. Запускаем скрипт.


Запускаем скрипт и вводим данные.

 

Как исключить дублирование данных при добавлении нового пользователя в Mikrotik RouterBoard

Рис.2. Логин и IP уже существуют.

 

Мы ввели все необходимые данные. Скрипт выполнил проверку на совпадение в базе данных и выдал результат, что и логин, и ip-адрес заняты.

 

Как исключить дублирование данных при добавлении нового пользователя в Mikrotik RouterBoard
 
Рис.3. Логин уже существует.

 

Если бы совпал только логин, мы бы увидели всего одно сообщение.

 

Как исключить дублирование данных при добавлении нового пользователя в Mikrotik RouterBoard
 
Рис.4. Совпадений не обнаружено.

 

Если совпадений не обнаружено, скрипт продолжит свою работу.

 

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

 

Читайте дальше Как при добавлении пользователя добавить в базу данных значения даты создания учетной записи и даты отключения

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

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

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

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

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

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


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

Комментарии


Нет комментариев
 


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

*
*

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

  Redraw

Символы: 

© 2007-2012 ASP 24.

 

Загрузка...

Total Duration: 0.196928024292
0.1177 (0.1177)