[Python] Port scanner

castor91 castor91 a gmail.com
Dom 31 Maggio 2009 11:22:13 CEST


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
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20090531/68b44316/attachment.htm 


Maggiori informazioni sulla lista Python