import socket import ipaddress import nmap import time import threading def get_network_range(): # Obtener la IP local hostname = socket.gethostname() local_ip = socket.gethostbyname(hostname) # Suponemos una máscara de red /24 network = ipaddress.ip_network(f"{local_ip}/24", strict=False) return str(network) def scan_network(ip_range): # Crear un escáner Nmap nm = nmap.PortScanner() print(f"Escaneando la red {ip_range}...") nm.scan(hosts=ip_range, arguments='-sn') devices = [] for host in nm.all_hosts(): if nm[host].state() == "up": mac = nm[host]['addresses'].get('mac', 'No MAC address found') devices.append({'ip': nm[host]['addresses']['ipv4'], 'mac': mac}) return devices network_range = get_network_range() devices = scan_network(network_range) # Mostrar resultados for device in devices: print(f"IP: {device['ip']}, MAC: {device['mac']}")