source: ocsinventory-agent/trunk/fuentes/lib/Ocsinventory/Agent/Backend/OS/HPUX/Networks.pm @ 468

Last change on this file since 468 was 468, checked in by mabarracus, 4 years ago

Copyt trusty code

File size: 2.2 KB
Line 
1package Ocsinventory::Agent::Backend::OS::HPUX::Networks;
2
3sub check  { can_load("Net::IP qw(:PROC)"); }
4
5sub run {
6   my $params = shift;
7   my $common = $params->{common};
8
9   my $name;
10   my $lanid;
11
12   my $ipmask;
13   my $ipgateway;
14   my $status;
15   my $macaddr;
16   my $speed;
17   my $type;
18   my $ipsubnet;
19   my $description;
20   my $ipaddress;
21
22   my $binip;
23   my $binmask;
24   my $binsubnet;
25
26   for ( `lanscan -iap`) {
27     # Reinit variable
28     $name="";
29     $lanid="";
30     $ipmask="";
31     $ipgateway="";
32     $status="";
33     $macaddr="";
34     $speed="";
35     $type="";
36     $ipsubnet="";
37     $description="";
38     $ipaddress="";
39
40     if ( /^(\S+)\s(\S+)\s(\S+)\s+(\S+)/) {
41       $name=$2;
42       $macaddr=$1;
43       $lanid=$4;
44
45       #print "name $name macaddr $macaddr lanid $lanid\n";
46       for ( `lanadmin -g $lanid` ) {
47         if (/Type.+=\s(.+)/) { $type = $1; };
48         if (/Description\s+=\s(.+)/) { $description = $1; };
49         if (/Speed.+=\s(\d+)/) {
50            $speed = $1;
51
52            unless ( $speed <= 1000000 ) { # in old version speed was given in Mbps
53                                           # we want speed in Mbps
54                                                $speed = $1/1000000;
55                                              }
56                                      };
57         if (/Operation Status.+=\s(.+)/) { $status = $1; };
58
59       }; # for lanadmin
60       #print "name $name macaddr $macaddr lanid $lanid speed $speed status $status \n";
61       for ( `ifconfig $name 2> /dev/null` ) {
62         if ( /inet\s(\S+)\snetmask\s(\S+)\s/ ) {
63            $ipaddress=$1;
64            $ipmask=$2;
65            if ($ipmask =~ /(..)(..)(..)(..)/) {
66               $ipmask=sprintf ("%i.%i.%i.%i",hex($1),hex($2),hex($3),hex($4));
67            }
68
69         };   
70       }; # For ifconfig
71       $binip = ip_iptobin ($ipaddress ,4);
72       $binmask = ip_iptobin ($ipmask ,4);
73       $binsubnet = $binip & $binmask;
74       $ipsubnet = ip_bintoip($binsubnet,4);
75
76      $common->addNetworks({
77
78          DESCRIPTION => $description,
79          IPADDRESS => $ipaddress,
80          IPGATEWAY => $ipgateway,
81          IPMASK => $ipmask,
82          IPSUBNET => $ipsubnet,
83          MACADDR => $macaddr,
84          STATUS => $status,
85          SPEED => $speed,
86          TYPE => $type,
87                             });
88
89     }; # If
90   }; # For lanscan
91 }
92
931;
Note: See TracBrowser for help on using the repository browser.