"Después del juego es antes del juego"
Sepp Herberger

jueves, 9 de abril de 2015

Obtener IP sabiendo la MAC

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