Salve a tutti. Posto qui il codice di un port scanner ad interfaccia grafica con Tkinter che ho appena fatto. Vorrei qualche consiglio su come velocizzare sia il codice che su come limitare il numero di connessioni che vengono provate per ogni porta(poichè sniffando con wireshark mi sono accorto che se una porta viene vista come aperta, viene segnalata sennò il programma cerca più volte di collegarsi sulla porta stabilita. grazie 1000 ;)
from Tkinter import * from socket import * import tkMessageBox lista = [] porte = [] def evCanc(): eCiao.delete(0,END) ePort1.delete(0,END) ePort2.delete(0,END) def pinga(): host = lista[0] porta_11 = lista[1] porta_21 = lista[2] porta_1 = int(porta_11) porta_2 = int(porta_21) print "Connecting... " porta_3 = porta_2 + 1 for i in range(porta_1, porta_3): s = socket(AF_INET, SOCK_STREAM) try: s.connect((host,i)) porte.append(i) except: pass tkMessageBox.showinfo("Porte Aperte:", porte) for j in range(1,len(lista)+1): del lista[0] for i in range(1,len(porte)+1): del porte[0] def callback(): k = eCiao.get() lista.append(k) j = ePort1.get() lista.append(j) pp = ePort2.get() lista.append(pp) pinga() cima = Tk() cima.title("PortScanner") F = Frame(cima, relief="sunken", border=5) F.pack() fTesto = Frame(F, border="2") fTesto.pack(side="left", expand="true") eCiao = Entry(fTesto) eCiao.insert(0, "host IP") eCiao.pack(side="left", expand="true") ePort1 = Entry(fTesto) ePort1.insert(0, "start port") ePort1.pack(side="left", expand="true") ePort2 = Entry(fTesto) ePort2.insert(0, "end port") ePort2.pack(side="left", expand="true") fBottoni = Frame(F, relief="sunken", border=1) bOk = Button(fBottoni, text="Ok", command=callback) bOk.pack(side="left", padx=5, pady=2) bCanc = Button(fBottoni, text="Cancella", command=evCanc) bCanc.pack(side="left", padx=5, pady=2) bEsci = Button(fBottoni, text="Esci", command=F.quit) bEsci.pack(side="left", padx=5, pady=2) fBottoni.pack(side="left", expand="true") F.mainloop() -- castor91
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python