1 |
#!/usr/bin/perl -w |
2 |
|
3 |
# this module will fetch html page from AP and dump stats for LAN and WiFi |
4 |
# |
5 |
# it's for TrendNet AP with firmware 3.5.0, if you have different one, you |
6 |
# might want to modify it. |
7 |
# |
8 |
# 2003-08-09 Dobrica Pavlinusic <dpavlin@rot13.org> |
9 |
|
10 |
use strict; |
11 |
use WWW::Mechanize; |
12 |
|
13 |
# URL to your page (http or https) |
14 |
my $uri = shift @ARGV || "https://192.168.95.254:8443/Status.htm"; |
15 |
my $user = shift @ARGV || "admin"; |
16 |
my $pass = shift @ARGV || ""; |
17 |
|
18 |
# how to find data on your page this are case-INsensitive regexps for that |
19 |
my $lan_regex = 'LAN.+?Send: (\d+).+?Receive: (\d+)'; |
20 |
my $wifi_regex = 'Wireless.+?Send: (\d+).+?Receive: (\d+)'; |
21 |
|
22 |
{ |
23 |
package RequestAgent; |
24 |
no strict 'vars'; |
25 |
@ISA = qw(WWW::Mechanize); |
26 |
|
27 |
sub new { |
28 |
my $self = WWW::Mechanize::new(@_); |
29 |
$self; |
30 |
} |
31 |
|
32 |
sub get_basic_credentials { |
33 |
return($user,$pass); |
34 |
} |
35 |
} |
36 |
|
37 |
my $mech = RequestAgent->new( |
38 |
cookie_jar => undef |
39 |
); |
40 |
|
41 |
|
42 |
$mech->get( $uri ); |
43 |
$mech->success or die "Can't fetch $uri\n", $mech->res->status_line, "\n"; |
44 |
|
45 |
$mech->is_html or die "$uri returns type \"", $mech->ct, "\", not \"text/html\"\n"; |
46 |
|
47 |
# get content |
48 |
my $txt = $mech->content; # get html |
49 |
$txt =~ s#</*[^>]+>##g; # remove tags |
50 |
$txt =~ s# # #g; |
51 |
$txt =~ s#\s+# #g; |
52 |
|
53 |
#print "AP returned:\n$txt\n\n"; |
54 |
|
55 |
if ($txt =~ m/$lan_regex/s) { |
56 |
print "$1\n$2\n"; |
57 |
} else { |
58 |
print "U\nU\n"; |
59 |
} |
60 |
|
61 |
if ($txt =~ m/$wifi_regex/s) { |
62 |
print "$1\n$2\n"; |
63 |
} else { |
64 |
print "U\nU\n"; |
65 |
} |
66 |
|