Basicamente tengo el siguiente problema
He realizado un escaneo de puertos a un ip range con masscan, en el cual me lo guarda en un output .txt
Lo que pasa es que a mi me interesa extraer todas las ips con puertos abiertos del output del escaneo, y que me lo guarde en otro .txt tipo ip:port
He estado probando varios scripts que me los ha pasado el chatgpt y nada que no me ha funcionado.
Aqui teneis el script como ejemplo, pero que no me funciona, al abrir el archivo no hay nada.
Código
import re # Nombre del archivo de entrada input_file = "scan_results.txt" # Nombre del archivo de salida para las IPs ip_output_file = "ips.txt" # Nombre del archivo de salida para las IPs y puertos ip_port_output_file = "ips_ports.txt" # Patrón para buscar las IPs ip_pattern = r"([0-9]{1,3}\.){3}[0-9]{1,3}" # Patrón para buscar las IPs y puertos abiertos ip_port_pattern = r"([0-9]{1,3}\.){3}[0-9]{1,3}:[0-9]+" # Buscar las IPs en el archivo de entrada y guardarlas en el archivo de salida with open(input_file, "r") as file, open(ip_output_file, "w") as ip_file: for line in file: ips = re.findall(ip_pattern, line) for ip in ips: ip_file.write(ip + "\n") # Buscar las IPs y puertos en el archivo de entrada y guardarlos en el archivo de salida correspondiente with open(input_file, "r") as file, open(ip_port_output_file, "w") as ip_port_file: for line in file: ip_ports = re.findall(ip_port_pattern, line) for ip_port in ip_ports: ip_port_file.write(ip_port + "\n") # Imprimir un mensaje de confirmación print(f"Se han extraído las IPs del archivo {input_file} y se han guardado en {ip_output_file}.") print(f"Se han extraído las IPs y puertos abiertos del archivo {input_file} y se han guardado en {ip_port_output_file}.")
Alguien tiene algun script que tenga esa funcionalidad y que funcione? Gracias
