Script para detectar máquinas encendidas en una red local | Algo de Linux

lunes, 13 de mayo de 2013

Script para detectar máquinas encendidas en una red local

A veces necesitamos detectar qué máquinas están encendidas en nuestra red local y hacerlo desde un script. Para ello podemos usar muchas herramientas. Una de las que utilizo habitualmente es fping

fping está disponible en los repositorios de Debian. De manera, que si queremos usarlo, no tenemos más que instalarlo con apt-get, por ejemplo:

# apt-get -y install fping

A continuación muestro un ejemplo de script que escanea mi red y me almacena un archivo (/var/log/escaneo.log) con la lista de ips de las máquinas que se encuentran encendidas en el momento de ejecutarlo.

#!/bin/bash

RED="172.19.144.0/23"
#RED="172.19.144.1 172.19.144.50"

fping -g $RED 2>/dev/null | grep alive | cut -f1 -d" " 1> /var/log/escaneo.log

echo Listo!
Como podéis ver en el script, a fping podemos indicarle:
  • Un rango de red mediante la sintaxis ip/máscara. Por ejemplo: 172.19.144.0/23
  • Un intervalo de máquinas. Por ejemplo: 172.19.144.1 172.19.144.50. Esto haría un fping a las máquinas con IP entre la 1 y la 50 de la subred 172.19.144

2 comentarios:

Anónimo dijo...

Interesante post, no conocía fping. Lo he probado y es muy rápido.

En la misma línea te recomiendo fing (http://www.overlooksoft.com/fing). Tiene versiones, entre otras, para Android y Linux y es también bastante rápido.

Esteban M. Navas Martín dijo...

fing es una maravilla, sobre todo en android porque además de escanear permite hacer wakeonlan para encender máquinas de nuestra red. En linux sólo lo he usado para volcar el resultado del escaneo en un archivo html, pero para scripts prefiero usar fing, que está en los repositorios y como bien dices, es rápido.