DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Snippets has posted 5883 posts at DZone. View Full User Profile

Perl - Cisco Wireless Managment

05.23.2007
| 3461 views |
  • submit to reddit
        // Perl script to update MAC access table on Cisco IOS-based AiroNets

#!c:/perl/bin/perl.exe

# Update Aironet IOS mac addresses

use Net::Telnet::Cisco;
use vars qw($r @data);

print "Content-type:text/html\n\n";

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
    ($name, $value) = split(/=/, $pair);
    $value =~ tr/+/ /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $FORM{$name} = $value;
}


$macaddr = $FORM{'command'};
#$macaddr = 'AABBCCDDEEFF';

print "using command <u>username <b>$macaddr</b> password <b>0$macaddr</b></u><br><br>";

	
print "Updating AP <b>127.0.0.1 (conference center)</b>    <br>";
$r = Net::Telnet::Cisco->new(Host=>"127.0.0.1");
	$r->login("login","password");
die($r->errmsg) unless($r->enable("password"));
	$r->cmd('terminal length 0');
	$r->cmd('config t');
	$r->cmd("username $macaddr password $macaddr");
	$r->cmd("username $macaddr autocommand exit");
	$r->cmd("exit");
	$r->cmd("write memory quiet");
	$r->cmd('terminal length 24');
	$r->close();
print "Done!";