32 lines
970 B
Python
32 lines
970 B
Python
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']}") |