Добавляем пользователей в Mikrotik RouterBoard 750.
#!/usr/bin/env python
# -*- coding: utf_8 -*-
import MySQLdb
import mysql_db
cur = mysql_db.db.cursor()
sql_ip_network = ("SELECT ip_network FROM ip_pool")
cur.execute(sql_ip_network)
data = cur.fetchone()[0]
cur.close()
cur2 = mysql_db.db.cursor()
sql_ip_user = ("SELECT ip_user FROM users")
cur2.execute(sql_ip_user)
data2 = cur2.fetchall()
cur2.close()
ip = data
list_ip = []
for x in range(2, 255):
list_ip.append(ip + str(x))
for x in list_ip:
if x not in [y[0] for y in data2]: break
print x +' free'
Создадим таблицу в базе данных. В ней будут хранится значения, на основании которых будут формироваться ip-адреса.
Рис.1. Таблица ip_pool.
Рис.2. База данных созданных пользователей.
cur = mysql_db.db.cursor()
sql_ip_network = ("SELECT ip_network FROM ip_pool")
cur.execute(sql_ip_network)
data = cur.fetchone()[0]
cur.close()
Извлекаем данные из таблицы ip_pool
cur2 = mysql_db.db.cursor()
sql_ip_user = ("SELECT ip_user FROM users")
cur2.execute(sql_ip_user)
data2 = cur2.fetchall()
cur2.close()
Извлекаем данные об ip-адресах пользователей.
ip = data # Присваиваем переменной ip значение data
list_ip = [] # Создаем пустой список
for x in range(2, 255): # Запускаем цикл
list_ip.append(ip + str(x)) # Выполняем конкатенацию, то есть склеиваем переменную ip со значениями x и заносим в список list_ip. Таким образом мы получили список со значениями от 172.17.1.2 до 172.17.1.254
for x in list_ip:
if x not in [y[0] for y in data2]: break
Выполняем проверку чтобы узнать, есть ли похожие ip-адреса в базе пользователей. Как только будет найден ip-адрес, который еще не присвоен пользователям, произойдет остановка.
print x +' free' # Выведет свободный ip-адрес.
Рис.3. Запуск скрипта.
Запускаем скрипт и видим результат. Таким образом мы убедились, что ip-адреса 172.17.1.2 нет в базе данных.


