Retrieve Serial Number and device type for CheckPoint (#358)
* Retrieve Serial Number and device type for CheckPoint devices at right place in MIB * Retrieve Serial Number and device type for CheckPoint * Retrieve Serial Number and device type for CheckPoint * Test not correct with cache data
This commit is contained in:
@@ -54,6 +54,10 @@ $VERSION = '3.68';
|
||||
%SNMP::Info::Layer3::GLOBALS,
|
||||
'netsnmp_vers' => 'versionTag',
|
||||
'hrSystemUptime' => 'hrSystemUptime',
|
||||
'serial_number' => 'svnApplianceSerialNumber',
|
||||
'product_name' => 'svnApplianceProductName',
|
||||
'manufacturer' => 'svnApplianceManufacturer',
|
||||
'version' => 'svnVersion',
|
||||
);
|
||||
|
||||
%FUNCS = (
|
||||
@@ -68,7 +72,13 @@ $VERSION = '3.68';
|
||||
);
|
||||
|
||||
sub vendor {
|
||||
return 'checkpoint';
|
||||
my $ckp = shift;
|
||||
|
||||
if (defined $ckp->manufacturer) {
|
||||
return $ckp->manufacturer;
|
||||
} else {
|
||||
return 'checkpoint';
|
||||
}
|
||||
}
|
||||
|
||||
sub model {
|
||||
@@ -77,7 +87,9 @@ sub model {
|
||||
|
||||
my $model = &SNMP::translateObj($id);
|
||||
|
||||
if (defined $model) {
|
||||
if (defined $ckp->product_name) {
|
||||
return $ckp->product_name;
|
||||
} elsif (defined $model) {
|
||||
$model =~ s/^checkPoint//;
|
||||
return $model;
|
||||
} else {
|
||||
@@ -91,41 +103,48 @@ sub os {
|
||||
|
||||
sub os_ver {
|
||||
my $ckp = shift;
|
||||
my $extend_table = $ckp->extend_output_table() || {};
|
||||
if (defined $ckp->version) {
|
||||
return $ckp->version;
|
||||
} else {
|
||||
my $extend_table = $ckp->extend_output_table() || {};
|
||||
|
||||
my $descr = $ckp->description();
|
||||
my $vers = $ckp->netsnmp_vers();
|
||||
my $os_ver = undef;
|
||||
my $descr = $ckp->description();
|
||||
my $vers = $ckp->netsnmp_vers();
|
||||
my $os_ver = undef;
|
||||
|
||||
foreach my $ex (keys %$extend_table) {
|
||||
(my $name = pack('C*',split(/\./,$ex))) =~ s/[^[:print:]]//g;
|
||||
if ($name eq 'ckpVersion') {
|
||||
return $1 if ($extend_table->{$ex} =~ /^This is Check Point's software version (.*)$/);
|
||||
last;
|
||||
foreach my $ex (keys %$extend_table) {
|
||||
(my $name = pack('C*',split(/\./,$ex))) =~ s/[^[:print:]]//g;
|
||||
if ($name eq 'ckpVersion') {
|
||||
return $1 if ($extend_table->{$ex} =~ /^This is Check Point's software version (.*)$/);
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$os_ver = $1 if ( $descr =~ /^\S+\s+\S+\s+(\S+)\s+/ );
|
||||
if ($vers) {
|
||||
$os_ver = "???" unless defined($os_ver);
|
||||
$os_ver .= " / Net-SNMP " . $vers;
|
||||
$os_ver = $1 if ( $descr =~ /^\S+\s+\S+\s+(\S+)\s+/ );
|
||||
if ($vers) {
|
||||
$os_ver = "???" unless defined($os_ver);
|
||||
$os_ver .= " / Net-SNMP " . $vers;
|
||||
}
|
||||
return $os_ver;
|
||||
}
|
||||
|
||||
return $os_ver;
|
||||
}
|
||||
|
||||
sub serial {
|
||||
my $ckp = shift;
|
||||
my $extend_table = $ckp->extend_output_table() || {};
|
||||
|
||||
foreach my $ex (keys %$extend_table) {
|
||||
(my $name = pack('C*',split(/\./,$ex))) =~ s/[^[:print:]]//g;
|
||||
if ($name eq 'ckpAsset') {
|
||||
return $1 if ($extend_table->{$ex} =~ /Serial Number: (\S+)/);
|
||||
last;
|
||||
if (defined $ckp->serial_number) {
|
||||
return $ckp->serial_number;
|
||||
} else {
|
||||
my $extend_table = $ckp->extend_output_table() || {};
|
||||
|
||||
foreach my $ex (keys %$extend_table) {
|
||||
(my $name = pack('C*',split(/\./,$ex))) =~ s/[^[:print:]]//g;
|
||||
if ($name eq 'ckpAsset') {
|
||||
return $1 if ($extend_table->{$ex} =~ /Serial Number: (\S+)/);
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user