Hola a todos.
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.
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
