""" Script para realizar o scan de portas em um servidor Artigo: https://www.linkedin.com/pulse/scanneador-de-portas-python-diego-mendes-rodrigues/ Diego Mendes Rodrigues """ import socket import subprocess import sys import platform from datetime import datetime # Limpando a tela if platform.system()=='Windows': subprocess.call('cls', shell=True) # DOS/Windows else: subprocess.call('clear', shell=True) # Linux # Solicitando o Host (Ex: uol.com.br) remoteServer = input("Qual o host remoto para realizar o scan: ") remoteServerIP = socket.gethostbyname(str(remoteServer)) # Exibindo um banner com informações do scan print("") print("-" * 60) print("Aguarde, escaneando o host remoto com IP", remoteServerIP) print("-" * 60) print("") # Data/Hora de início do scan t1 = datetime.now() # Realizando o scan entre as portas 1 e 1024 (portas baixas) try: for porta in range(1,1025): #print(porta) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(0.20) resultado = sock.connect_ex((remoteServerIP, porta)) if resultado == 0: print("Porta {} Aberta".format(porta)) sock.close() except KeyboardInterrupt: print("\nVocê pressionou Ctrl+C") sys.exit() except socket.gaierror: print('\nO hostname não pode ser resolvido. Saindo!') sys.exit() except socket.error: print("\nNão foi possível realizar a conexão com o servidor!") sys.exit() # Data/Hora do final do scan t2 = datetime.now() # Calculando quanto tempo foi necessário para realizar o scan total = t2 - t1 # Exibindo a informação de tempo de execução print('\nEscaner completo em ', total)