#!/usr/bin/env perl # Wireless # # Douglas Thrift # # $Id$ use strict; use File::Basename; use Getopt::Long qw(:config bundling no_getopt_compat); use MIME::Base64; use Term::ReadLine; use Term::ReadPassword; use WWW::Mechanize; my $program = basename($0); sub usage { print < \&usage, 'debug|D' => \$debug, 'secret|s' => \$secret) or usage; print "wireless:\n" if ($debug); my $browser = new WWW::Mechanize; $browser->get('http://router.wireless.ccs.ucsb.edu/'); print ' ' . $browser->title() . "\n" if ($debug); my $person; my $password; if ($secret) { open SECRET, '/ccs/etc/web.secret' or die "$program: $!"; my $secret = ; close SECRET; chomp $secret; $secret =~ tr/A-Za-z/N-ZA-Mn-za-m/; ($person, $password) = split /:/, decode_base64($secret), 2; } else { my $term = new Term::ReadLine($program); $term->ornaments(0); $person = $term->readline('User: '); $password = read_password('Password: '); } $browser->submit_form(form_number => 0, fields => {person => $person, password => $password}); print ' ' . $browser->title() . "\n" if ($debug); $browser->follow_link(text => 'DHCP'); print ' ' . $browser->title() . "\n" if ($debug); $browser->follow_link(text => 'Laptops'); print ' ' . $browser->title() . "\n" if ($debug); $browser->follow_link(text => 'MAC Address Lookup'); print ' ' . $browser->title() . "\n" if ($debug);