import socket
import csv
# Leer un archivo CSV con los datos de las IP y guardarlas en una lista
> **Relacionado**: [[01-Ciberseguridad/Herramientas/IDOR|IDOR]]. [[02-Ciencias-Computacion/Sistemas-Operativos/UNIX/comandos/NMAP|NMAP]]. [[01-Ciberseguridad/Comunicaciones-Seguras/Practica-1-Apendice-Programacion-con-sockets-en-Python-Master-IoT-UCM-Practicas-RPIANIOTLSI-2425|Practica 1 Apendice Programacion con sockets en Python Master IoT UCM Practicas RPIANIOTLSI 2425]]. [[02-Ciencias-Computacion/Compiladores/Comprobacion-de-tipos/Comprobacion-de-codigo-comprobacion-de-tipos|Comprobacion de codigo comprobacion de tipos]].
def importar_ip_from_csv(csv_file):
lista = []
with open(csv_file, newline='') as csvfile:
lineas = csv.reader(csvfile, delimiter=';')
for linea in lineas:
if linea: # Ignorar líneas vacías
# Añadir la primera columna (IP) como una cadena a la lista lista.append(linea[0].strip())
return lista
def nmapbasico(ip):
puertosAbiertos = []
puertos = [21, 22, 23, 25, 53, 67, 68, 80, 443]
for puerto in puertos:
try:
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.settimeout(1) # Tiempo en segundos
# Verificar si el puerto está abierto if s.connect_ex((ip, puerto)) == 0:
puertosAbiertos.append(puerto)
else:
print(f"No se pudo conectar al servidor {ip}:{puerto}")
except Exception as e:
print(f"Error al conectar al servidor {ip}: {e}")
return puertosAbiertos
if __name__ == '__main__':
# Leer las IPs desde el archivo CSV
ips = importar_ip_from_csv("prueba.csv")
ipMasPuertosAbierto = []
# Escanear cada IP y guardar resultados
for ip in ips:
print(f"Analizando {ip}...")
puertos_abiertos = nmapbasico(ip)
ipMasPuertosAbierto.append((ip, puertos_abiertos))
# Mostrar resultados
for dato in ipMasPuertosAbierto:
ip, puertos = dato
print(f"IP: {ip} - Puertos abiertos: {puertos}")Este ejemplo importa csv recoge las ip y valida unas conexiones con un puerto