1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
|
#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
##### Librairies
import wx #Permet d'accéder au wxWidgets (Interface graphique)
import locate_PC #Permet de localiser un PC
import locate_all_PC #Permet de localiser plusieurs PC
import scan_port #Permet de scanner un port
import scan_all_port #Permet de scanner plusieurs port
import os #Permet de faire des operations systeme
import ctypes #Permet d'avoir des informations sur l'ecran
#####
########################### Fonction qui determine si un fichier existe ou pas
def file_exists(fichier):
try:
file(fichier)
return True
except:
return False
###########################
ID_EQUIP = 100
ID_GROUP = 101
ID_ONEPORT = 200
ID_MOREPORT = 201
ID_PROPOS = 300
############################ Recupère la résolution de l'écran
SM_CXSCREEN = 0
SM_CYSCREEN = 1
taille_x = ctypes.windll.user32.GetSystemMetrics(SM_CXSCREEN)
taille_y = ctypes.windll.user32.GetSystemMetrics(SM_CYSCREEN)
############################
# Définition de la boite de dialogue identification
class MaFenetre(wx.Frame):
def __init__(self, titre):
wx.Frame.__init__(self, None, -1, title = titre)
sizer0 = wx.BoxSizer(wx.VERTICAL)
sizer1 = wx.BoxSizer(wx.HORIZONTAL)
panneau = wx.Panel(self, -1)
# Zone de text et bouton définis
self.text = wx.TextCtrl(panneau, -1) # Entrer du Username
self.text2 = wx.TextCtrl(panneau, -1) # Entrer son mot de passe
bouton = wx.Button(panneau, -1, "Valider")
# Text statique
self.pretext = wx.StaticText(panneau, 1," Username :", style = wx.ALIGN_CENTER)
self.pretext2 = wx.StaticText(panneau, 1," Password :", style = wx.ALIGN_CENTER)
# Placer graphique de ces zones
sizer1.Add(self.pretext, 0, wx.ALIGN_CENTER)
sizer1.Add(self.text, 0, wx.ALIGN_CENTER)
sizer1.Add(self.pretext2, 0, wx.ALIGN_CENTER)
sizer1.Add(self.text2, 0, wx.ALIGN_CENTER)
sizer1.Add(bouton, 0, wx.ALIGN_CENTER)
panneau.SetSizer(sizer1)
sizer0.Add(panneau, 0)
self.SetSizer(sizer0)
self.Fit()
self.Bind(wx.EVT_BUTTON, self.OnClick, bouton)
def OnClick(self, event):
user = self.text.GetValue()
password = self.text2.GetValue()
li = [user, password] #Stock "user" et "password" dans la liste 'li'
print li
self.Destroy()
# Définition des menus
class LesMenus(wx.Frame):
def __init__(self, titre):
wx.Frame.__init__(self, None, 1,title = titre, size = (taille_x, taille_y))
menuLocaliser = wx.Menu()
menuLocaliser.Append(ID_EQUIP, "&Un équipement\tCTRL+e")
menuLocaliser.Append(ID_GROUP, "&Un groupe de PC\tCTRL+g")
menuScanner = wx.Menu()
menuScanner.Append(ID_ONEPORT,
"&Un port physique d'un equipement reseau\tCTRL+e")
menuScanner.Append(ID_MOREPORT,
"&Plusieurs ports physiques d'un equipement reseau\tCTRL+g")
menuQuitter = wx.Menu()
menuQuitter.Append(wx.ID_EXIT, "&Quitter\tCTRL+q")
menuQs = wx.Menu()
menuQs.Append(ID_PROPOS, "&A propos de")
menuBarre = wx.MenuBar()
menuBarre.Append(menuLocaliser, "&Localiser")
menuBarre.Append(menuScanner, "&Scanner")
menuBarre.Append(menuQuitter, "&Quitter")
menuBarre.Append(menuQs, "&?")
self.SetMenuBar(menuBarre)
wx.EVT_MENU(self, ID_EQUIP, self.Equip)
wx.EVT_MENU(self, ID_GROUP, self.Group)
wx.EVT_MENU(self, ID_ONEPORT, self.Oneport)
wx.EVT_MENU(self, ID_MOREPORT, self.Moreport)
wx.EVT_MENU(self, wx.ID_EXIT, self.OnExit)
wx.EVT_MENU(self, ID_PROPOS, self.Propos)
def Equip(self, evt): #L'utilisateur veut localiser un PC
print li #ICI PERTE car Variable non global
# locate_PC.locate(adr_eq,user,password)
def Group(self, evt): #L'utilisateur veut localiser plusieurs PC
locate_all_PC.locate_all(user,password)
def Oneport(self, evt): #L'utilisateur veut scanner un port d'un routeur
host = scan_port.ask_host() #On demande à l'utilisateur le nom du routeur
port, mode = scan_port.ask_port() #On demande à l'utilisateur le nom du port
scan_port.scan(user, password, host, port, mode)
def Moreport(self, evt): #L'utilisateur veut scanner plusieurs ports d'un routeur
scan_all_port.scan_all(user,password)
def OnExit(self, evt):
self.Destroy()
def Propos(self, evt):
dlg = wx.MessageDialog(self,"CISCO TOOLS V1.3", style = wx.OK)
retour = dlg.ShowModal()
dlg.Destroy()
class MonApp(wx.App):
def OnInit(self):
fen = LesMenus("CISCO TOOLS V1.3")
identif = MaFenetre("Rentrez vos identifiants CISCO")
fen.Show(True) #Affiche la fenetre principale menu
identif.Show(True) #Affiche la boite de dialogue identifiant
# self.SetTopWindow(identif)
self.SetTopWindow(fen)
return True
if file_exists("Temp_locate_PC.txt") == True: #Si le fichier temporaire existe, on le supprime
os.remove("Temp_locate_PC.txt")
if file_exists("Temp_scan_port.txt") == True: #Si le fichier temporaire existe, on le supprime
os.remove("Temp_scan_port.txt")
app = MonApp()
app.MainLoop() |
Partager