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:
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