
Me gustaría saber qué máquinas se conectan a mi red doméstica. Mi idea era tener una base de datos MySQL con una entrada para cada máquina, con la marca de tiempo de la última vez que la vi y un recuento de cuántas veces la vi. Eso es sencillo. Mi pregunta es ¿cómo busco las MAC? He considerado algo como esto ejecutándose cada 30 minutos:
#! /usr/bin/python
import nmap
nm = nmap.PortScanner()
nm.scan(hosts='10.10.10.0/24', arguments='-n -sP -PE)
hosts_list = [(x, nm[x]['status']['state']) for x in nm.all_hosts()]
for host, status, mac in hosts_list:
save(host,status,mac)
... pero para obtener la MAC, necesito ejecutar esto como root
.
- ¿Existe una mejor manera de hacer esto? (También he considerado si podría obtener los registros DHCP del enrutador, pero eso no encontraría ningún dispositivo con IP fija)
- ¿Puedo usar otra herramienta?
- ¿Existe alguna medida de seguridad que pueda tomar al ejecutar un script en cron como root?
Respuesta1
Desde una línea de comando de Windows: arp -a le dará la dirección IP y MAC de cada sistema actualmente en su red.