Home > Comunicaciones > busqueda automatica de mac en switches cisco

busqueda automatica de mac en switches cisco

November 8th, 2007 c4n Leave a comment Go to comments

Hola, he creado un script en perl , que busca las macs automaticamente en swicthes cisco.Se pueden definir tantos como quieras.

No tengo muchos conocimientos en programación pero ahi lo pongo por si os sirve de ayuda.

#!/usr/bin/perl
#By c4n
#Este script se conecta los switches y busca la  mac solicitada
##########################################
#Ejemplo: # perl busca_mac.pl 001b.7872.f096
# buscando en XXXXXXX
#          Mac Address Table
# -------------------------------------------
#
# Vlan    Mac Address       Type        Ports
# ----    -----------       --------    -----
#  109    001b.7872.f096    DYNAMIC     Gi0/9
# Total Mac Addresses for this criterion: 1
#
#La mac esta en el switch: hostname XXXXX

use Net::Telnet::Cisco;
use strict;
$ARGV[0] || die "tienes que especificar la cadena de buscar\n";
#aqui definir las direcciones ip de los switches
my @blade_Nuevo = ("XXXX", "XXXX", "XXXX", "XXXX","XXXX", "XXXX", "XXXX9", "XXXX");
#ahora definir las password para concectarse
my @blade_pass = ("xxxx","xxxxxx");
#poner las password de enable
my @blade_en = ("xxxx","xxxxx");
my $mac= $ARGV[0];
my $host = "show running-config | include hostname";
my $search_mac ="show mac-address-table address";
my $cambio="0"; # cambia el swicth
my $ip="0";
my $i=0;

foreach (@blade_Nuevo)
{
my  $ip  = $_;
print " buscando en $ip\n";
my $session = Net::Telnet::Cisco->new(Host => $ip );
$session->login("username", $blade_pass[$i]);
$session->enable($blade_en[$i]);
my @output = "";
my @output2 = "";
$i++;
@output = $session->cmd("$search_mac $mac");
@output2 = $session->cmd("$host");
my @find = grep(/Gi/, @output);
foreach (@find)     {
my $line  = $_;## CARGANDO $line CON VALOR EN $_
my  @found = grep(/Gi/, @find);
if (@found) ## SI LISTA FOUND ES MAYOR QUE 0 ELEMENTOS...
{
print "@output\n";
print "La mac esta en el switch: @output2\n";
exit;
}
}
$session->close;
}

Un saludo

c4n

  1. November 9th, 2007 at 03:41 | #1

    Muy util si señor!
    Pues para no tener muchos conocimientos de programación, tiene muy buena pinta :)

    Me apunto perl/pyton como tema pendiente de aprender :D

  2. daniel
    March 24th, 2008 at 17:46 | #2

    muchas gracias

  3. Angel
    September 29th, 2009 at 16:07 | #3

    buenos dias, deseo poder leer las mac que esta conectadas a un switch. estoy usando root\snmp\localhost en vbscritps y puedo leer otra informacion. pero saber q mac estan conectadas no he podido. me pordrian ayudar?

  4. October 6th, 2009 at 22:54 | #4

    Hola Angel,

    Este post se escribió conectándose a un switch. Lo que tu quieres hacer me imagino que es mediante snmp. Los switches precisamente solo envían los paquetes al puerto donde está conectado la ip de destino por lo que no podrás capturar mucha información a no ser que esté conectado a un hub.

    Otra alternativa es que pongas tu tarjeta de red en modo promiscuo, a ver si consigues ver el tráfico de más paquetes que los que tengan como origen o destino tu ip.

    Suerte!

  5. Angel
    October 7th, 2009 at 00:21 | #5

    muchas gracias Rubick

  6. Angel
    October 15th, 2009 at 04:33 | #6

    buenas tardes, en realidad lo q intento en sacar la tabla que se saca con el comandoshow mac-address-table address

  1. No trackbacks yet.