Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import subprocess, time
- import sqlite3 as lite
- from datetime import datetime
- from PySide import QtCore, QtGui
- 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 = ['SSID', 'Тип защиты', 'Шифрование', 'MAC-адрес', 'Сигнал', 'Тип сети']
- class MyThread(QtCore.QThread):
- def __init__(self, parent=None):
- QtCore.QThread.__init__(self, parent)
- self.ru = False
- def run(self):
- 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)
- con = lite.connect('main.db')
- 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.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)
- self.emit(QtCore.SIGNAL("mysignal(PyObject, PyObject,"
- "PyObject,PyObject, PyObject,PyObject, PyObject)"), ssi, sig, bez, mac, shif, tip, ft)
- #self.sleep(10)
- 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"))
- global u
- u = ['SSID', 'Тип защиты', 'Шифрование', 'MAC-адрес', 'Тип сети', 'Замечен первый раз',
- 'Последний раз замечен']
- self.table2.setColumnCount(len(u))
- self.table2.setHorizontalHeaderLabels(u)
- self.table2.resizeColumnsToContents()
- k = ['SSID', 'Тип защиты', 'Шифрование', '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_html = QtGui.QAction(MainWindow)
- self.action_html.setObjectName(_fromUtf8("action_html"))
- self.action_Excel = QtGui.QAction(MainWindow)
- self.action_Excel.setObjectName(_fromUtf8("action_Excel"))
- self.mythread = MyThread()
- self.menu.addAction(self.action_html)
- self.menu.addAction(self.action_Excel)
- 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("mysignal(PyObject, PyObject, PyObject, PyObject, PyObject, PyObject, PyObject)"),
- self.test, QtCore.Qt.QueuedConnection)
- def retranslateUi(self, MainWindow):
- MainWindow.setWindowTitle(_translate("MainWindow", "Wifi 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_html.setText(_translate("MainWindow", "В html", None))
- self.action_Excel.setText(_translate("MainWindow", "В Excel", 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 test(self, ssi, sig, bez, mac, shif, tip, ft):
- 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 bd(self):
- con = lite.connect('main.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]
- global u
- for i in range(0,len(u)):
- self.table2.setItem(j, i, QtGui.QTableWidgetItem(te[i]))
- self.table2.resizeColumnsToContents()
- if __name__ == "__main__":
- import sys
- app = QtGui.QApplication(sys.argv)
- MainWindow = QtGui.QMainWindow()
- ui = Ui_MainWindow()
- ui.setupUi(MainWindow)
- MainWindow.show()
- sys.exit(app.exec_())
Add Comment
Please, Sign In to add comment