Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import datetime
- import bluetooth
- import sqlite3 as lite
- import pymysql
- from PySide import QtCore
- from logon import Login
- k = ['SSID', 'Тип защиты', 'Шифрование', 'MAC-адрес', 'Сигнал', 'Тип сети']
- class MyThread(QtCore.QThread):
- def __init__(self, parent=None):
- QtCore.QThread.__init__(self, parent)
- self.ru = False
- def run(self):
- cost = Login.retco(self)
- a=Login.reta(self)
- if a == 0:
- self.ru = True
- ssi = []
- sig = []
- bez = []
- shif = []
- tip = []
- mac = []
- temp = []
- ft = []
- while self.ru:
- global k
- temp.clear()
- c = ''
- pro = QtCore.QProcess() # create QProcess object
- pro.start('netsh', ['wlan', 'show', 'networks', 'mode=bssid'])
- pro.waitForReadyRead()
- y = pro.readAllStandardOutput()
- for j in range(0, y.size()):
- temp.append(y[j])
- for j in range(0, len(temp)):
- c = c + temp[j].decode('cp866')
- pro.waitForFinished()
- pro.terminate()
- ssi.clear()
- shif.clear()
- bez.clear()
- sig.clear()
- tip.clear()
- mac.clear()
- ft.clear()
- c = c.split('\n')
- te = []
- t = len(c) - 1
- for i in range(0, t):
- te.append(c[i])
- for i in range(0, t):
- f = te[i]
- if k[0] in f:
- ssi.append(f[8:])
- if k[4] in f:
- sig.append(f[-5:])
- if 'Проверка' in f:
- bez.append(f[30:])
- if 'Шифрование' in f:
- shif.append(f[30:])
- if 'радио' in f:
- tip.append(f[-8:])
- for j in range(1, len(ssi) // 2 + 1):
- buff = ssi.pop(j)
- buff = buff[28:]
- mac.append(buff)
- if cost == 1:
- con = lite.connect('net.db')
- with con:
- cur = con.cursor()
- cur.execute('''CREATE TABLE if not exists wifi (
- ID INTEGER PRIMARY KEY
- UNIQUE
- NOT NULL,
- SSID VARCHAR,
- MAC VARCHAR UNIQUE,
- TIPDE VARCHAR,
- SHIF VARCHAR,
- TIPSE VARCHAR,
- FT DATETIME,
- LT DATETIME)''')
- for i in range(0, len(mac)):
- with con:
- cur = con.cursor()
- cur.execute("""Select FT from wifi where MAC=?""", (mac[i],))
- bi = cur.fetchall()
- c = datetime.datetime.now()
- c.strftime('%Y-%m-%d %H:%M:%S')
- c = str(c)
- c = c[0:len(c) - 7]
- if bi == []:
- cur.execute(
- """INSERT INTO wifi(SSID, MAC, TIPDE,SHIF,TIPSE, FT, LT) VALUES (?,?,?,?,?,?,?)""",
- (ssi[i], mac[i], bez[i], shif[i], tip[i], c, c))
- else:
- cur.execute('''Update wifi set LT =? where MAC=?;''', (c, mac[i]))
- bi = str(bi)
- bi = bi[3:-4]
- ft.append(bi)
- elif cost == 2:
- hote = Login.retho(self)
- pote = Login.retpo(self)
- pasw = Login.retpasw(self)
- log = Login.retlog(self)
- con = pymysql.connect(host=hote, port=int(pote), user=log, passwd=pasw, db='net')
- with con:
- cur = con.cursor()
- # try:
- cur.execute('''SET sql_notes = 0;
- CREATE TABLE if not exists `net`.`wifi` (
- `id` INT NOT NULL AUTO_INCREMENT,
- `SSID` VARCHAR(45) NULL,
- `MAC` VARCHAR(45) NULL,
- `TIPDE` VARCHAR(45) NULL,
- `SHIF` VARCHAR(45) NULL,
- `TIPSE` VARCHAR(45) NULL,
- `FT` DATETIME NULL,
- `LT` DATETIME NULL,
- PRIMARY KEY (`id`),
- UNIQUE INDEX `MAC_UNIQUE` (`MAC` ASC));
- SET sql_notes = 1; ''')
- for i in range(0, len(mac)):
- with con:
- cur = con.cursor()
- cur.execute("""Select `FT` from `net`.`wifi` where `MAC`=%s""", (mac[i],))
- bi = cur.fetchall()
- c = datetime.datetime.now()
- c.strftime('%Y-%m-%d %H:%M:%S')
- c = str(c)
- c = c[0:len(c) - 7]
- if str(bi) == "()":
- cur.execute(
- """INSERT INTO `net`.`wifi`(`SSID`, `MAC`, `TIPDE`,`SHIF`,`TIPSE`, `FT`, `LT`) VALUES (%s,%s,%s,%s,%s,%s,%s)""",
- (ssi[i], mac[i], bez[i], shif[i], tip[i], c, c))
- else:
- cur.execute('''Update `net`.`wifi` set `LT` =%s where `MAC`=%s;''', (c, mac[i]))
- bi = str(bi)
- bi = bi[20:-5]
- bi = bi.split(',')
- ti = datetime.datetime(int(bi[0]), int(bi[1]), int(bi[2]), int(bi[3]), int(bi[4]),
- int(bi[5]))
- ft.append(str(ti))
- self.emit(
- QtCore.SIGNAL("wisignal(PyObject, PyObject, PyObject, PyObject, PyObject, PyObject, PyObject)"),
- ssi, sig, bez, mac, shif, tip, ft)
- self.sleep(1)
- elif a==1:
- ssi=[]
- mac=[]
- ft=[]
- self.ru=True
- while self.ru:
- mac.clear()
- ssi.clear()
- ft.clear()
- try:
- nearby_devices = bluetooth.discover_devices(duration=4, lookup_names=True, flush_cache=True,
- lookup_class=False)
- for addr, name in nearby_devices:
- ssi.append(name)
- mac.append(addr)
- except OSError:
- pass
- if cost == 1:
- con = lite.connect('net.db')
- with con:
- cur = con.cursor()
- cur.execute("""CREATE TABLE IF NOT EXISTS bluetooth (
- ID INTEGER PRIMARY KEY AUTOINCREMENT
- NOT NULL, NAME VARCHAR,
- MAC VARCHAR UNIQUE,
- FT DATETIME,
- LT DATETIME);""")
- for i in range(0, len(mac)):
- with con:
- cur = con.cursor()
- cur.execute("""Select FT from bluetooth where MAC=?""", (mac[i],))
- bi = cur.fetchall()
- c = datetime.datetime.now()
- c.strftime('%Y-%m-%d %H:%M:%S')
- c = str(c)
- c = c[0:len(c) - 7]
- if bi == []:
- cur.execute(
- """INSERT INTO bluetooth (NAME, MAC, FT, LT) VALUES (?,?,?,?)""",
- (ssi[i], mac[i], c, c))
- else:
- cur.execute('''Update bluetooth set LT =? where MAC=?;''', (c, mac[i]))
- cur.execute("""Select NAME from bluetooth where MAC=?""", (mac[i],))
- name = cur.fetchall()
- if str(name) == "[('',)]":
- cur.execute('''Update bluetooth set NAME=? where MAC=?;''',(ssi[i], mac[i]))
- bi = str(bi)
- bi = bi[3:-4]
- ft.append(bi)
- if cost == 2:
- hote = Login.retho(self)
- pote = Login.retpo(self)
- pasw = Login.retpasw(self)
- log = Login.retlog(self)
- con = pymysql.connect(host=hote, port=int(pote), user=log, passwd=pasw, db='net')
- with con:
- cur = con.cursor()
- # try:
- cur.execute('''SET sql_notes = 0;
- CREATE TABLE if not exists `net`.`bluetooth` (
- `ID` INT NOT NULL AUTO_INCREMENT,
- `NAME` VARCHAR(45) NULL,
- `MAC` VARCHAR(45) NULL,
- `FT` DATETIME NULL,
- `LT` DATETIME NULL,
- PRIMARY KEY (`ID`),
- UNIQUE INDEX `MAC_UNIQUE` (`MAC` ASC));
- SET sql_notes = 1; ''')
- for i in range(0, len(mac)):
- with con:
- cur = con.cursor()
- cur.execute("""Select `FT` from `net`.`bluetooth` where `MAC`=%s""", (mac[i],))
- bi = cur.fetchall()
- c = datetime.datetime.now()
- c.strftime('%Y-%m-%d %H:%M:%S')
- c = str(c)
- c = c[0:len(c) - 7]
- if str(bi) == "()":
- cur.execute(
- """INSERT INTO `net`.`bluetooth`(`NAME`, `MAC`, `FT`, `LT`) VALUES (%s,%s,%s,%s)""",
- (ssi[i], mac[i], c, c))
- ft.append(c)
- else:
- cur.execute('''Update `net`.`bluetooth` set `LT` =%s where `MAC`=%s;''', (c, mac[i]))
- bi = str(bi)
- bi = bi[20:-5]
- bi = bi.split(',')
- ti = datetime.datetime(int(bi[0]), int(bi[1]), int(bi[2]), int(bi[3]), int(bi[4]),
- int(bi[5]))
- ft.append(str(ti))
- cur.execute("""Select `NAME` from `net`.`bluetooth` where `MAC`=%s""", (mac[i],))
- name = cur.fetchall()
- if str(name)=="()":
- cur.execute('''Update `net`.`bluetooth` set `NAME` =%s where `MAC`=%s;''', (ssi[i], mac[i]))
- self.emit(
- QtCore.SIGNAL("blsignal(PyObject, PyObject, PyObject)"),
- ssi, mac, ft)
- self.sleep(1)
- import time
- import pymysql
- import xlsxwriter
- from logon import Login
- import sqlite3 as lite
- from MThread import MyThread
- from PySide import QtCore, QtGui
- import datetime
- try:
- _fromUtf8 = QtCore.QString.fromUtf8
- except AttributeError:
- def _fromUtf8(s):
- return s
- try:
- _encoding = QtGui.QApplication.UnicodeUTF8
- def _translate(context, text, disambig):
- return QtGui.QApplication.translate(context, text, disambig, _encoding)
- except AttributeError:
- def _translate(context, text, disambig):
- return QtGui.QApplication.translate(context, text, disambig)
- global k
- k=[]
- class Ui_MainWindow(QtGui.QMainWindow):
- def setupUi(self, MainWindow):
- MainWindow.setObjectName(_fromUtf8("MainWindow"))
- MainWindow.resize(669, 526)
- MainWindow.setWindowFlags(QtCore.Qt.MSWindowsFixedSizeDialogHint | QtCore.Qt.WindowMaximizeButtonHint)
- sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
- icon = QtGui.QIcon()
- icon.addPixmap(QtGui.QPixmap(_fromUtf8("../Prjct/signal-2-256x256.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
- MainWindow.setWindowIcon(icon)
- self.centralwidget = QtGui.QWidget(MainWindow)
- self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
- global table
- self.table = QtGui.QTableWidget(self.centralwidget)
- self.table.setGeometry(QtCore.QRect(10, 30, 651, 181))
- self.table.setMinimumSize(QtCore.QSize(0, 0))
- self.table2 = QtGui.QTableWidget(self.centralwidget)
- self.table2.setGeometry(QtCore.QRect(10, 280, 651, 181))
- self.table2.setObjectName(_fromUtf8("tableWidget_2"))
- a = Login.reta(self)
- global u
- if a == 0:
- u = ['SSID', 'Тип защиты', 'Шифрование', 'MAC-адрес', 'Тип сети', 'Замечен первый раз',
- 'Последний раз замечен']
- elif a==1:
- u=['Название','MAC-адрес','Замечен первый раз', 'Последний раз замечен']
- self.table2.setColumnCount(len(u))
- self.table2.setHorizontalHeaderLabels(u)
- self.table2.resizeColumnsToContents()
- global k
- if a == 0:
- k = ['SSID', 'Тип защиты', 'Шифрование', 'MAC-адрес', 'Сигнал', 'Тип сети', 'Замечен первый раз']
- elif a==1:
- k = ['Название','MAC-адрес','Замечен первый раз']
- self.table.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
- self.table.setObjectName(_fromUtf8("tableView"))
- self.table.setColumnCount(len(k))
- self.table.setHorizontalHeaderLabels(k)
- self.table.resizeColumnsToContents()
- self.pushButton = QtGui.QPushButton(self.centralwidget)
- self.pushButton.setGeometry(QtCore.QRect(580, 220, 75, 23))
- self.pushButton.setObjectName(_fromUtf8("pushButton"))
- self.pushButton1 = QtGui.QPushButton(self.centralwidget)
- self.pushButton1.setGeometry(QtCore.QRect(500, 220, 75, 23))
- self.pushButton1.setObjectName(_fromUtf8("pushButton"))
- self.pushButton2 = QtGui.QPushButton(self.centralwidget)
- self.pushButton2.setGeometry(QtCore.QRect(580, 470, 75, 23))
- self.pushButton2.setObjectName(_fromUtf8("pushButton"))
- self.label = QtGui.QLabel(self.centralwidget)
- self.label.setGeometry(QtCore.QRect(10, 15, 71, 13))
- self.label.setObjectName(_fromUtf8("label"))
- self.label_2 = QtGui.QLabel(self.centralwidget)
- self.label_2.setGeometry(QtCore.QRect(10, 264, 92, 13))
- self.label_2.setObjectName(_fromUtf8("label_2"))
- MainWindow.setCentralWidget(self.centralwidget)
- self.menubar = QtGui.QMenuBar(MainWindow)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 551, 21))
- self.menubar.setObjectName(_fromUtf8("menubar"))
- self.menu = QtGui.QMenu(self.menubar)
- self.menu.setObjectName(_fromUtf8("menu"))
- MainWindow.setMenuBar(self.menubar)
- self.action_fi = QtGui.QAction(MainWindow)
- self.action_fi.setObjectName(_fromUtf8("action_fi"))
- self.action_tw = QtGui.QAction(MainWindow)
- self.action_tw.setObjectName(_fromUtf8("action_tw"))
- self.action_th = QtGui.QAction(MainWindow)
- self.action_th.setObjectName(_fromUtf8("action_th"))
- self.action_fo = QtGui.QAction(MainWindow)
- self.action_fo.setObjectName(_fromUtf8("action_th"))
- self.mythread = MyThread()
- self.menu.addAction(self.action_fi)#Добавление пунктов в меню
- self.menu.addAction(self.action_fo)
- self.menu.addAction(self.action_tw)
- self.menu.addAction(self.action_th)
- self.action_th.connect(self.action_fi, QtCore.SIGNAL('triggered()'), self.fir)#Привязка действий по нажатию на пункт
- self.action_th.connect(self.action_th, QtCore.SIGNAL('triggered()'), self.all)
- self.action_th.connect(self.action_tw, QtCore.SIGNAL('triggered()'), self.thr)
- self.action_th.connect(self.action_fo, QtCore.SIGNAL('triggered()'), self.two)
- self.menubar.addAction(self.menu.menuAction())
- self.pushButton.connect(self.pushButton, QtCore.SIGNAL('clicked()'), self.on_clicked)
- self.retranslateUi(MainWindow)
- QtCore.QMetaObject.connectSlotsByName(MainWindow)
- self.pushButton1.connect(self.pushButton1, QtCore.SIGNAL("clicked()"),
- self.stop)
- self.pushButton2.connect(self.pushButton2, QtCore.SIGNAL("clicked()"),
- self.bd)
- self.connect(self.mythread, QtCore.SIGNAL("started()"),
- self.on_started)
- self.connect(self.mythread, QtCore.SIGNAL("finished()"),
- self.on_finished)
- self.connect(self.mythread,
- QtCore.SIGNAL("wisignal(PyObject, PyObject, PyObject, PyObject, PyObject, PyObject, PyObject)"),
- self.wif, QtCore.Qt.QueuedConnection)
- self.connect(self.mythread,
- QtCore.SIGNAL("blsignal(PyObject, PyObject, PyObject)"),
- self.blu, QtCore.Qt.QueuedConnection)
- def retranslateUi(self, MainWindow):
- MainWindow.setWindowTitle(_translate("MainWindow", "Wifi/Bluetooth Checker", None))
- self.pushButton.setText(_translate("MainWindow", "Старт", None))
- self.pushButton1.setText(_translate("MainWindow", "Стоп", None))
- self.pushButton1.setDisabled(True)
- self.pushButton2.setText(_translate("MainWindow", "Обновить", None))
- self.label.setText(_translate("MainWindow", "Текущие сети", None))
- self.label_2.setText(_translate("MainWindow", "Сети за всё время", None))
- self.menu.setTitle(_translate("MainWindow", "Сгенерировать отчет по вхождению в промежуток ...", None))
- self.action_fi.setText(_translate("MainWindow", "... только `Замечен первый раз`", None))
- self.action_tw.setText(_translate("MainWindow", "... `Замечен первый раз` и `Замечен последний раз`", None))
- self.action_fo.setText(_translate("MainWindow", "... только `Замечен последний раз`", None))
- self.action_th.setText(_translate("MainWindow", "... за всё время существования БД", None))
- def on_clicked(self):
- self.pushButton1.setDisabled(False)
- if not self.mythread.isRunning():
- self.mythread.start() # Запускаем поток
- def on_started(self): # Вызывается при запуске потока
- self.pushButton.setDisabled(True)
- def stop(self):
- self.mythread.ru = False
- def on_finished(self): # Вызывается при завершении потока
- self.pushButton.setDisabled(False)
- self.pushButton1.setDisabled(True)
- def wif(self, ssi, sig, bez, mac, shif, tip, ft): #Функция генерации таблицы, если выбран Wi-Fi
- self.table.setRowCount(len(ssi))
- for i in range(0, len(ssi)):
- self.table.setItem(i, 0, QtGui.QTableWidgetItem(ssi[i]))
- self.table.setItem(i, 1, QtGui.QTableWidgetItem(bez[i]))
- self.table.setItem(i, 2, QtGui.QTableWidgetItem(shif[i]))
- self.table.setItem(i, 3, QtGui.QTableWidgetItem(mac[i]))
- self.table.setItem(i, 4, QtGui.QTableWidgetItem(sig[i]))
- self.table.setItem(i, 5, QtGui.QTableWidgetItem(tip[i]))
- self.table.setItem(i, 6, QtGui.QTableWidgetItem(ft[i]))
- self.table.resizeColumnsToContents()
- def blu(self, ssi, mac, ft): #Функция генерации таблицы, если выбран Bluetooth
- self.table.setRowCount(len(ssi))
- for i in range(0, len(ssi)):
- self.table.setItem(i, 0, QtGui.QTableWidgetItem(ssi[i]))
- self.table.setItem(i, 1, QtGui.QTableWidgetItem(mac[i]))
- self.table.setItem(i, 2, QtGui.QTableWidgetItem(ft[i]))
- self.table.resizeColumnsToContents()
- def bd(self):
- global u
- a=Login.reta(self)
- cost = Login.retco(self)
- if a==0:
- if cost == 1:
- con = lite.connect('net.db')
- with con:
- cur = con.cursor()
- cur.execute("""Select SSID, TIPDE,SHIF, MAC,TIPSE, FT, LT from wifi""")
- bi = cur.fetchall()
- self.table2.setRowCount(len(bi))
- for j in range(0, len(bi)):
- te = bi[j]
- for i in range(0, len(u)):
- self.table2.setItem(j, i, QtGui.QTableWidgetItem(te[i]))
- self.table2.resizeColumnsToContents()
- elif cost == 2:
- hote = Login.retho(self)
- pote = Login.retpo(self)
- pasw = Login.retpasw(self)
- log = Login.retlog(self)
- con = pymysql.connect(host=hote, port=int(pote), user=log, passwd=pasw, db='net')
- with con:
- cur = con.cursor()
- cur.execute("""Select `SSID`, `TIPDE`,`SHIF`, `MAC`,`TIPSE`,`FT`,`LT` from `net`.`wifi`""")
- bi = cur.fetchall()
- self.table2.setRowCount(len(bi))
- for j in range(0, len(bi)):
- te = bi[j]
- for i in range(0, len(u)):
- self.table2.setItem(j, i, QtGui.QTableWidgetItem(str(te[i])))
- self.table2.resizeColumnsToContents()
- elif a==1:
- if cost == 1:
- con = lite.connect('net.db')
- with con:
- cur = con.cursor()
- cur.execute("""Select NAME, MAC,FT, LT from bluetooth""")
- bi = cur.fetchall()
- self.table2.setRowCount(len(bi))
- for j in range(0, len(bi)):
- te = bi[j]
- for i in range(0, len(u)):
- self.table2.setItem(j, i, QtGui.QTableWidgetItem(te[i]))
- self.table2.resizeColumnsToContents()
- elif cost == 2:
- hote = Login.retho(self)
- pote = Login.retpo(self)
- pasw = Login.retpasw(self)
- log = Login.retlog(self)
- con = pymysql.connect(host=hote, port=int(pote), user=log, passwd=pasw, db='net')
- with con:
- cur = con.cursor()
- cur.execute("""Select `NAME`, `MAC`,`FT`,`LT` from `net`.`bluetooth`""")
- bi = cur.fetchall()
- self.table2.setRowCount(len(bi))
- for j in range(0, len(bi)):
- te = bi[j]
- for i in range(0, len(u)):
- self.table2.setItem(j, i, QtGui.QTableWidgetItem(str(te[i])))
- self.table2.resizeColumnsToContents()
- def exc(self,ql,em,ter):
- bi = []
- global u
- con=''
- cost = Login.retco(self)
- if cost == 1:
- con = lite.connect('net.db')
- elif cost == 2:
- hote = Login.retho(self)
- pote = Login.retpo(self)
- pasw = Login.retpasw(self)
- log = Login.retlog(self)
- con = pymysql.connect(host=hote, port=int(pote), user=log, passwd=pasw, db='net')
- with con:
- cur = con.cursor()
- try:
- cur.execute(ql,(em,ter))
- except (TypeError,lite.ProgrammingError):
- try:
- cur.execute(ql, (em, ter, em, ter))
- except (TypeError,lite.ProgrammingError):
- cur.execute(ql)
- bi = cur.fetchall()
- if em!="":
- name = em+" - "+ter+".xlsx"
- else:
- c = datetime.datetime.now()
- c.strftime('%Y-%m-%d')
- c = str(c)
- c = c[0:len(c) - 16]
- name = "Все на " +c+".xlsx"
- if str(bi)!="()":
- workbook = xlsxwriter.Workbook(name)
- worksheet = workbook.add_worksheet(name)
- ma = workbook.add_format({'align':'center'})
- mai =workbook.add_format({'align':'center'})
- ma.set_font_name('Times New Roman')
- mai.set_font_name('Times New Roman')
- mai.set_font_size(18)
- for i in range(0, len(u)):
- worksheet.write(1, i, u[i], ma)
- if len(u)>5:
- worksheet.merge_range('A1:G1', 'Отчет по радиоизлучениям', mai)
- worksheet.set_column(0, 1, 10)
- worksheet.set_column(1, 4, 15)
- worksheet.set_column(4, 5, 10)
- worksheet.set_column(5, 7, 22)
- else:
- worksheet.merge_range('A1:D1', 'Отчет по радиоизлучениям', mai)
- worksheet.set_column(0, 1, 10)
- worksheet.set_column(1, 2, 15)
- worksheet.set_column(2, 4, 22)
- for j in range(0, len(bi)):
- temp = bi[j]
- for i in range(0, len(u)):
- worksheet.write(j + 2, i, str(temp[i]), ma)
- workbook.close()
- added= 'Сгенерировано в '+ name
- QtGui.QMessageBox.information(
- self, 'Сгенерировано', added,
- QtGui.QMessageBox.Yes
- )
- else:
- QtGui.QMessageBox.warning(
- self, 'Ничего не найдено', 'В указанном промежутке ничего не найдено!',
- QtGui.QMessageBox.Yes
- )
- def inp(self):
- em = ''
- ter = ''
- text, ok = QtGui.QInputDialog.getText(self, 'Введение данных',
- 'Введите первую дату в формате ГГГГ-ММ-ДД(дефисы обязательны)')
- if ok:
- em = text
- text, ok = QtGui.QInputDialog.getText(self, 'Введение данных',
- 'Введите вторую дату(+1 день, если необходимо включить дату) в формате ГГГГ-ММ-ДД(дефисы обязательны)')
- if ok:
- ter = text
- return em,ter
- def thr(self):
- em=''
- ter=''
- em, ter = self.inp()
- if (em != '') & (ter != ''):
- a = Login.reta(self)
- cost = Login.retco(self)
- if a == 0:
- if cost == 1:
- ql = "Select SSID, TIPDE,SHIF, MAC,TIPSE, FT, LT from wifi WHERE LT between ? and ? or FT between ? and ?"
- else:
- ql = "Select `SSID`, `TIPDE`,`SHIF`, `MAC`,`TIPSE`,`FT`,`LT` from `net`.`wifi` where `LT` between %s and %s or `FT` between %s and %s"
- else:
- if cost == 1:
- ql = "Select NAME, MAC,FT, LT from bluetooth WHERE LT between ? and ? or FT between ? and ?"
- else:
- ql = "Select `NAME`, `MAC`,`FT`,`LT` from `net`.`bluetooth` where `LT` between %s and %s or `FT` between %s and %s"
- self.exc(ql, em, ter)
- def two(self):
- em = ''
- ter = ''
- em, ter = self.inp()
- a = Login.reta(self)
- cost = Login.retco(self)
- if (em != '') & (ter != ''):
- if a == 0:
- if cost == 1:
- ql = "Select SSID, TIPDE,SHIF, MAC,TIPSE, FT, LT from wifi WHERE LT between ? and ?"
- else:
- ql = "Select `SSID`, `TIPDE`,`SHIF`, `MAC`,`TIPSE`,`FT`,`LT` from `net`.`wifi` where `LT` between %s and %s"
- else:
- if cost == 1:
- ql = "Select NAME, MAC,FT, LT from bluetooth WHERE LT between ? and ?"
- else:
- ql = "Select `NAME`, `MAC`,`FT`,`LT` from `net`.`bluetooth` where `LT` between %s and %s"
- self.exc(ql, em, ter)
- def fir(self):
- em = ''
- ter = ''
- em, ter=self.inp()
- a = Login.reta(self)
- cost = Login.retco(self)
- if (em != '') & (ter!=''):
- if a == 0:
- if cost == 1:
- ql = "Select SSID, TIPDE,SHIF, MAC,TIPSE, FT, LT from wifi WHERE FT between ? and ?"
- else:
- ql = "Select `SSID`, `TIPDE`,`SHIF`, `MAC`,`TIPSE`,`FT`,`LT` from `net`.`wifi` where `FT` between %s and %s"
- else:
- if cost == 1:
- ql = "Select NAME, MAC,FT, LT from bluetooth WHERE FT between ? and ?"
- else:
- ql = "Select `NAME`, `MAC`,`FT`,`LT` from `net`.`bluetooth` where `FT` between %s and %s"
- self.exc(ql, em, ter)
- def all(self):
- em=''
- ter=''
- a = Login.reta(self)
- cost = Login.retco(self)
- if a==0:
- if cost == 1:
- ql="Select SSID, TIPDE,SHIF, MAC,TIPSE, FT, LT from wifi"
- else:
- ql="Select `SSID`, `TIPDE`,`SHIF`, `MAC`,`TIPSE`,`FT`,`LT` from `net`.`wifi`"
- else:
- if cost == 1:
- ql="Select NAME, MAC,FT, LT from bluetooth"
- else:
- ql="Select `NAME`, `MAC`,`FT`,`LT` from `net`.`bluetooth`"
- self.exc(ql,em,ter)
- import sys
- app = QtGui.QApplication(sys.argv)
- login = Login()
- if login.exec_() == QtGui.QDialog.Accepted:
- MainWindow = QtGui.QMainWindow()
- ui = Ui_MainWindow()
- ui.setupUi(MainWindow)
- MainWindow.show()
- else:
- sys.exit()
- app.exec_()
- import pymysql
- from PySide import QtCore, QtGui
- try:
- _fromUtf8 = QtCore.QString.fromUtf8
- except AttributeError:
- def _fromUtf8(s):
- return s
- global cost
- global a
- global log, pasw, hote, pote
- log, pasw,hote,pote="","","",""
- cost = 0
- a = 0
- try:
- _encoding = QtGui.QApplication.UnicodeUTF8
- def _translate(context, text, disambig):
- return QtGui.QApplication.translate(context, text, disambig, _encoding)
- except AttributeError:
- def _translate(context, text, disambig):
- return QtGui.QApplication.translate(context, text, disambig)
- class Login(QtGui.QDialog):
- def __init__(self, parent=None):
- super(Login, self).__init__(parent)
- sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
- sizePolicy.setHorizontalStretch(0)
- sizePolicy.setVerticalStretch(0)
- self.setSizePolicy(sizePolicy)
- self.setMinimumSize(QtCore.QSize(180, 100))
- self.setWindowTitle(_fromUtf8("Авторизация"))
- self.setWindowFlags(QtCore.Qt.WindowTitleHint)
- self.setWindowIcon(QtGui.QIcon('icons/test.png'))
- self.textName = QtGui.QLineEdit(self)
- self.textPass = QtGui.QLineEdit(self)
- self.ho = QtGui.QLineEdit(self)
- self.po = QtGui.QLineEdit(self)
- self.textPass.setEchoMode(QtGui.QLineEdit.Password)
- self.buttonLogin = QtGui.QPushButton('Войти', self)
- self.buttonLogin.clicked.connect(self.handleLogin)
- self.buttonbl = QtGui.QPushButton('Bluetooth', self)
- self.buttonbl.clicked.connect(self.seta)
- self.buttonwi = QtGui.QPushButton('Wifi', self)
- self.buttonwi.clicked.connect(self.swi)
- self.buttonLo = QtGui.QPushButton('SQLite локальная база', self)
- self.buttonLo.clicked.connect(self.sqli)
- self.buttontw = QtGui.QPushButton('MySQL локальная база', self)
- self.buttontw.clicked.connect(self.msql)
- self.buttontr = QtGui.QPushButton('Подключиться к БД', self)
- self.buttontr.clicked.connect(self.contact)
- self.label = QtGui.QLabel(self)
- self.label.setObjectName(_fromUtf8("label"))
- self.label_2 = QtGui.QLabel(self)
- self.label_2.setObjectName(_fromUtf8("label_2"))
- self.label_3 = QtGui.QLabel(self)
- self.label_3.setObjectName(_fromUtf8("label_3"))
- self.label_4 = QtGui.QLabel(self)
- self.label_4.setObjectName(_fromUtf8("label_4"))
- self.label_5 = QtGui.QLabel(self)
- self.label_5.setObjectName(_fromUtf8("label_5"))
- self.label.setText(_translate("Dialog", "Логин:", None))
- self.label_2.setText(_translate("Dialog", "Пароль:", None))
- self.label_3.setText(_translate("Dialog", "Хост:", None))
- self.label_4.setText(_translate("Dialog", "Порт:", None))
- self.label_5.setText(_translate("Dialog", "Выберите БД для подключения", None))
- self.label_6 = QtGui.QLabel(self)
- self.label_6.setObjectName(_fromUtf8("label_6"))
- self.label_6.setText(_translate("Dialog", "Выберите тип радиоизлучения", None))
- layout = QtGui.QVBoxLayout(self)
- layout.addWidget(self.label)
- layout.addWidget(self.label_5)
- layout.addWidget(self.textName)
- layout.addWidget(self.label_2)
- layout.addWidget(self.textPass)
- layout.addWidget(self.label_3)
- layout.addWidget(self.ho)
- layout.addWidget(self.label_4)
- layout.addWidget(self.label_6)
- layout.addWidget(self.po)
- layout.addWidget(self.buttonLogin)
- layout.addWidget(self.buttontr)
- layout.addWidget(self.buttonbl)
- layout.addWidget(self.buttonwi)
- self.label.hide()
- self.textName.hide()
- self.label_2.hide()
- self.label_3.hide()
- self.ho.hide()
- self.ho.setText('localhost')
- self.po.setText('3306')
- self.po.hide()
- self.buttontr.hide()
- self.label_4.hide()
- self.label_5.hide()
- self.textPass.hide()
- self.buttonLogin.hide()
- layout.addWidget(self.buttonLo)
- layout.addWidget(self.buttontw)
- self.buttontw.hide()
- self.buttonLo.hide()
- def seta(self):
- global a
- a=1
- self.buttonwi.hide()
- self.buttonbl.hide()
- self.label_6.hide()
- self.label_5.show()
- self.buttontw.show()
- self.buttonLo.show()
- self.resize(185, 100)
- def swi(self):
- self.buttonwi.hide()
- self.buttonbl.hide()
- self.label_6.hide()
- self.label_5.show()
- self.buttontw.show()
- self.buttonLo.show()
- self.resize(185, 100)
- def sqli(self):
- self.label.show()
- self.label_5.hide()
- self.textName.show()
- self.label_2.show()
- self.label_3.hide()
- self.ho.hide()
- self.label_4.hide()
- self.textPass.show()
- self.buttonLogin.show()
- self.buttontw.hide()
- self.buttonLo.hide()
- self.po.hide()
- self.buttontr.hide()
- self.setMaximumSize(QtCore.QSize(150, 150))
- self.resize(150,150)
- global cost
- cost=cost+1
- def msql(self):
- self.label_3.show()
- self.label_5.hide()
- self.textName.show()
- self.label_4.show()
- self.label.show()
- self.ho.show()
- self.po.show()
- self.label_2.show()
- self.textPass.show()
- self.buttonLo.hide()
- self.buttontw.hide()
- self.buttontr.show()
- self.setMinimumSize(QtCore.QSize(180, 200))
- global cost
- cost = cost + 1
- self.resize(200,200)
- def contact(self):
- global log, pasw, hote, pote
- log=self.textName.text()
- pasw = self.textPass.text()
- hote = self.ho.text()
- pote = self.po.text()
- try:
- con = pymysql.connect(host=hote, port=int(pote), user=log, passwd=pasw,db='net')
- cur = con.cursor()
- cur.close()
- con.close()
- self.sqli()
- except pymysql.err.OperationalError:
- QtGui.QMessageBox.warning(self, 'Ошибка', 'Неверные данные, проверьте снова')
- def retco(self):
- return cost
- def retho(self):
- return hote
- def retpo(self):
- return pote
- def retlog(self):
- return log
- def retpasw(self):
- return pasw
- def reta(self):
- return a
- def handleLogin(self):
- if (self.textName.text() == 'admin' and self.textPass.text() == 'test'):
- self.accept()
- else:
- QtGui.QMessageBox.warning(self, 'Ошибка', 'Неверный пользоваетель или пароль')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement