Bash script para obtener MAC en un rango IP

creando esta semana algunas politicas de los servidores en esta oportunidad tanto proxy, dhcp como firewall me vi en la necesidad de hacer un inventario de las mac address de cada una de las redes existente en el edificio.. escribir este pequeño bash que haciendo ping a cada ip dentro de un rango, hace tambien una consulta arp para captura la mac y las almacena en un archivo de texto plano en el directorio donde se ejecuta.

#!/bin/bash

for i in `seq 1 30`; do ping -c 1 10.0.10.$i; arp -n 10.0.10.$i | grep -v Address | grep -v incomplete | awk ‘{print $1, $3}’ >> ip-mac.txt; done

lo guardo el bash bajo un nombre.sh en mi caso lo llame iparpmac.sh

le damos privilegios de ejecucion con chmod +x iparpmac.sh y lo corremos

./iparpmac.sh

El resultado segun el programa _seq_ que defino en la primera linea y la unica`seq 1 30` me dice quede átoda la red me capturará 30 direcciones ip, esto lo pueden adaptar segun las necesidad o la netmask de la red en donde de implemente.

El propocito inicial en mi caso fue para crear las ACL para el DNS y mayormente para proxy en  squid haciendo filtrado por MAC address mediante ACL’s.

tengo script q tambien crea las ACL para el squid.. pronto estaré actualizando el post..

Anuncios

Acerca de jjedixdefault

geek by default
Esta entrada fue publicada en Bash, Configuraciones, PlanetaLinux, planetaunplug. Guarda el enlace permanente.

4 respuestas a Bash script para obtener MAC en un rango IP

  1. nahuel dijo:

    me sale el siguiente error cuando lo corro

    — 192.168.1.3 ping statistics —
    1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

    awk: .{print
    awk: ^ syntax error
    awk: línea ord.:1: .{print
    awk: línea ord.:1: ^ nueva línea o fin de la cadena inesperados
    PING 192.168.1.4 (192.168.1.4) 56(84) bytes of data.
    64 bytes from 192.168.1.4: icmp_seq=1 ttl=128 time=5.17 ms

    — 192.168.1.4 ping statistics —

  2. nahuel dijo:

    ya esta solucionado cuando copie me pego puntos en lugar de comillas .

    saludos

    y funciona ok
    gracias
    nahuel

    • Gracias por el aporte! aunque tambien con el comando arp -a puedes concer en tu servidor si lo usas como gateway de una red todos los host que pasan por el viendo la tabla arp.

      Saludos

  3. Reblogueó esto en BLOG DEL PROYECTO TIC – TACy comentado:
    Directo pero conciso! Para Administradores de Red o Tecnicos entusiastas al Scriptting por consola. Espero les guste.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s