Puedes utilizar dos comandos: ping
y arp
para obtener la información que necesita.
ping
le permite transmitir a su red y cualquier dispositivo que en la red y capaz de responder responderá.
Supongamos que tu red es 192.168.1.0. Transmita su ping utilizando la dirección de difusión 192.168.1.255
$ ping 192.168.1.255
Esto será eterno, así que o bien ControlC o utilizar el -t
para establecer un tiempo de espera. Por ejemplo, para 20 segundos de pining...
$ ping -t 20 192.168.1.255
Recibirás un montón de respuestas, algunas de las cuales estarán duplicadas. Esto continuará durante 20 segundos y luego se detendrá.
Siguiente, arp
para encontrar los nombres:
$ arp -a
allans-imac.home (192.168.1.12) at a8:20:66:40:5b:10 on en0 ifscope permanent [ethernet]
grace-pc.home (192.168.1.18) at 0:34:f6:5:f7:29 on en0 ifscope [ethernet]
grace-iphone.home (192.168.1.150) at b8:63:3a:14:3e:f7 on en0 ifscope [ethernet]
nas.home (192.168.1.23) at 0:12:43:20:aa:3d on en0 ifscope [ethernet]
Esta es una muestra truncada de la salida de mi red (nombres, MACs e IPs aleatorios por seguridad). Como puedes ver, incluye los nombres de host y las MAC de los dispositivos que tengo en mi red.
Los dispositivos en reposo (como mi impresora HP y mi MacBook Pro) no respondieron y no están en la tabla arp. Por otra parte, tampoco aparecen en el Finder.
Con la aplicación de grep
y awk
debería ser capaz de extraer lo que necesita.