Escáner de puertos usando Python

Prerrequisitos: Programación de sockets en Python

Este artículo es solo para proporcionar un código de muestra para generar un escáner de puertos. Este escáner de puertos funcionará tanto para las aplicaciones web como para el host remoto. Esta herramienta ha sido creada para proporcionar la funcionalidad básica de un Escáner de puertos. El concepto general de Sockets se ha utilizado para proporcionar la funcionalidad. Port Scanner se basa en Python 3 y utiliza algunas bibliotecas adicionales, como socket y pyfiglet (para un banner elegante). 

Encuentre el siguiente código fuente para el escáner de puertos: 

Código fuente 

Python3

import pyfiglet
import sys
import socket
from datetime import datetime
  
ascii_banner = pyfiglet.figlet_format("PORT SCANNER")
print(ascii_banner)
  
# Defining a target
if len(sys.argv) == 2:
     
    # translate hostname to IPv4
    target = socket.gethostbyname(sys.argv[1])
else:
    print("Invalid amount of Argument")
 
# Add Banner
print("-" * 50)
print("Scanning Target: " + target)
print("Scanning started at:" + str(datetime.now()))
print("-" * 50)
  
try:
     
    # will scan ports between 1 to 65,535
    for port in range(1,65535):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        socket.setdefaulttimeout(1)
         
        # returns an error indicator
        result = s.connect_ex((target,port))
        if result ==0:
            print("Port {} is open".format(port))
        s.close()
         
except KeyboardInterrupt:
        print("\n Exiting Program !!!!")
        sys.exit()
except socket.gaierror:
        print("\n Hostname Could Not Be Resolved !!!!")
        sys.exit()
except socket.error:
        print("\ Server not responding !!!!")
        sys.exit()

Producción:

python-port-scanner

Nota: En el código anterior en la línea 27, es decir, para el puerto en el rango (1, 65535): puede definir de forma personalizada sus puertos bajo qué rango tiene que escanear. Este escáner de puertos generalmente tomará un tiempo de 2 minutos como máximo para producir una salida en el formato, tal y como los puertos están abiertos o cerrados.
 

Publicación traducida automáticamente

Artículo escrito por deepamanknp y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *