Port Scanner Python

Python è un esempio di linguaggio di alto livello; altri linguaggi di alto livello di cui puoi aver sentito parlare sono il C, il C++, il Perl ed il Java.

Come puoi immaginare sentendo la definizione “linguaggio di alto livello” esistono anche linguaggi di basso livello, talvolta chiamati “linguaggi macchina” o “linguaggi assembly”. In modo non del tutto corretto si può affermare che i computer possono eseguire soltanto programmi scritti in linguaggi di basso livello: i programmi scritti in un linguaggio di alto livello devono essere elaborati prima di poter essere eseguiti. Questo processo di elaborazione impiega del tempo e rappresenta un piccolo svantaggio dei linguaggi di alto livello.

Prima di iniziare avrete bisogno di installare Python sul vostro computer, e probabilmente lo dovrete scaricare.

DOWNLOAD: https://www.python.org/ftp/python/3.6.0/python-3.6.0-amd64.exe

Una volta scaricato apriamo IDLE (Python 3.6 64-bit) ovvero il nostro ambiente di sviluppo, dopodiché creiamo un nuovo file.



Il programma che andremo a creare serve a cercare le porte aperte del server di un determinato HOST.

NOTA: Questo progetto è a scopo illustrativo, non mi ritengo responsabile di ogni utilizzo improprio.

A questo punto possiamo copiare lo sketch seguente e incollarlo sul nostro editor:

[code lang=”python”]
import socket
import sys
from datetime import datetime
remoteServer = input("Inserisci un HOST remoto da analizzare: ")
remoteServerIP = socket.gethostbyname(remoteServer)
print ("-" * 60)
print ("Scansione in corso…", remoteServerIP)
print ("-" * 60)
t1 = datetime.now()
try:
for port in range(1,1025):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = sock.connect_ex((remoteServerIP, port))
if result == 0:
print ("Porta {}: Aperta".format(port))
sock.close()
except KeyboardInterrupt:
print ("Hai premuto CTRL+C")
sys.exit()
except socket.gaierror:
print (‘L HOST scelto non può essere analizzato, chiusura in corso…’)
sys.exit()
except socket.error:
print ("Impossibile connettersi al server")
sys.exit()
t2 = datetime.now()
total = t2 – t1
print (‘Scansione completata in: ‘, total)
[/code]

Una volta incollato cliccate su RUN (F5) e inserite un HOST da analizzare, dopo qualche minuto lo sketch mostrerà nella console le porte aperte dell’HOST