parse full adsl info --show
[APKPM.git] / lib / H1 / Davolink.pm
1 package H1::Davolink;
2 use warnings;
3 use strict;
4
5 use Net::Telnet;
6
7 sub info {
8         my ( $self, $ip ) = @_;
9
10         my $telnet = new Net::Telnet (Telnetmode => 1);
11         $telnet->open(Host => $ip,Port => 23);
12         $telnet->login('support','support');
13
14         my $rec;
15
16         foreach my $line ( $telnet->cmd("adsl info --show") ) {
17                 chomp $line;
18                 if ( $line =~ /^([^:]+):\s+(\S+)\s+(\S+)\s*$/ ) {
19                         my $name = $1;
20                         my ( $down, $up ) = ( $2,$3 );
21                         $name =~ s/\s*\(.+?\)//g;
22                         $name =~ s/\s+/_/g;
23
24                         $rec->{"${name}_down"} = $down;
25                         $rec->{"${name}_up"}   = $up;
26                         warn "## $line\n";
27                 } else {
28                         warn "#S $line\n";
29                 }
30         }
31
32         return $rec;
33 }
34
35 1;