Prerrequisitos: Programación de sockets en Python
Antes de pasar a la programación, hablemos de los puertos. En este artículo, revisaremos los puertos virtuales de un servidor o sitios web, o localhost. Cada puerto tiene un número único. Hay 65.535 puertos disponibles en un host a partir de 0. Podemos asignar los puertos para cualquier servicio.
Ejemplo 1: en este programa, puede escanear una cantidad de puertos en un cierto rango.
Python3
# Here we import two modules, socket and time import socket import time s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # here we asking for the target website # or host target = input('What you want to scan?: ') # next line gives us the ip address # of the target target_ip = socket.gethostbyname(target) print('Starting scan on host:', target_ip) # function for scanning ports def port_scan(port): try: s.connect((target_ip, port)) return True except: return False start = time.time() # here we are scanning port 0 to 4 for port in range(5): if port_scan(port): print(f'port {port} is open') else: print(f'port {port} is closed') end = time.time() print(f'Time taken {end-start:.2f} seconds')
Producción:
What you want to scan?: localhost Starting scan on host: 127.0.0.1 port 0 is closed port 1 is closed port 2 is closed port 3 is closed port 4 is closed Time taken 8.12 seconds
Nota: puede cambiar el rango en el bucle for para cambiar la cantidad de puertos que se escanearán. Para escanear un sitio web o un host, puede llevar cierto tiempo, así que tenga paciencia.
Ejemplo 2: si desea escanear un puerto en particular, elija esta solución.
Python3
# importing the sockets module import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) target = input('What you want to scan?: ') # getting the ip address using gethostbyname # function t_IP = socket.gethostbyname(target) print("Starting scan on host: ", t_IP) def port_scan(port): try: s.connect((t_IP, port)) return True except: return False port = int(input("Enter the port number to be scanned: ")) if port_scan(port): print('Port', port, 'is open') else: print("port", port, "is closed")
Producción:
What you want to scan?: localhost Starting scan on host: 127.0.0.1 Enter the port number to be scanned: 135 Port 135 is open
Nota: Aquí estamos escaneando el localhost. Puede escanear cualquier host o sitio web. Si recibe algún error, entonces los sockets no pueden conectar el objetivo o tal vez cometió algún error en su código.
Advertencias : Sin permiso de la administración, escanear puertos de un servidor o un sitio web puede considerarse un delito. Hay muchos sitios web gratuitos disponibles para probar, puede usarlos.
Publicación traducida automáticamente
Artículo escrito por santanunandi01 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA