En una de las redes que administro casi todos los PC tienen IP dinámica. Cuando necesito conectarme a uno de ellos me encuentro con que no sé que IP tienen, aunque si que conozco su MAC. Una opción es usar nmap, pero normalmente es bastante lento ya que suele hacer mas cosas que una simple búsqueda de IP. Hace poco descubrí la utilidad arp-scan, ideal para mis fines y mucho mas rápida que nmap. La idea es hacer un script que dado un nombre de PC o bien una MAC, me averigüe su la IP que tiene en ese momento
Para ello, primero tenemos que hacer una lista de PC y MACs, y almacenarlos en un fichero "inventario.txt" con la estructura:
PC1=84:c9:b2:66:fa:c0
PC2=e8:61:94:26:3f:93
El script busca-ip.sh sería:
#!/bin/bash
#Esto debe ejecutarse como root
INTERFACE="eth0"
if [ "$EUID" -ne 0 ]
then
echo "No eres root"
exit 1
fi
if [ $# -eq 0 ]
then
echo "Uso: $0"
exit 1
fi
mac=$(grep -i "^$1=" inventario.txt | cut -d"=" -f2)
if [ -z $mac ]
then
mac=$1
else
echo "MAC: $mac"
fi
ip=$(arp-scan --interface=$INTERFACE --localnet | grep -i $mac)
if [ -z "$ip" ]
then
echo "$1 no se ha encontrado"
else
echo "La IP es $ip"
fi
exit 0
Para probar simplemente haremos (no olvidemos instalar previamente el paquete arp-scan):
# apt-get install arp-scan
#
./busca-ip.sh PC1 MAC: 84:c9:b2:66:fa:c0 La IP es 172.19.231.174 84:c9:b2:66:fa:c0 (Unknown) # ./busca-ip.sh 84:c9:b2:66:fa:c0 La IP es 172.19.231.174 84:c9:b2:66:fa:c0 (Unknown) # ./busca-ip.sh 84:c9:b2:66:fa:c1 84:c9:b2:66:fa:c1 no se ha encontrado
Y eso es todo por hoy.
No hay comentarios:
Publicar un comentario