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