busqueda automatica de mac en switches cisco
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
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
muchas gracias
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?
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!
muchas gracias Rubick
buenas tardes, en realidad lo q intento en sacar la tabla que se saca con el comandoshow mac-address-table address