Leser: 1
|< 1 2 >| | 11 Einträge, 2 Seiten |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#!/usr/bin/perl use strict; use warnings; my $SNMP_Target = "192.168.100"; # IP´s Hardcoded my $i = 20; my $snmp_value; my @a; while ($i <= 254){ $snmp_value = `snmpget -c public -v1 -OvQ $SNMP_Target.$i HOST-RESOURCES-MIB::hrDeviceDescr.1 2>1`; $snmp_value =~ s/\"//g; push(@a, $snmp_value); $i++; } my %hash; $hash{$_}++ for @a; my @sortiert = map{ "$_ $hash{$_} ;" }sort{ $hash{$b} <=> $hash{$a} }keys %hash; print join " ", @sortiert;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
134 ; NRG DSm415
16 ; HP LaserJet 4050 Series
13 ; hp LaserJet 4200
8 ; HP LaserJet P2015 Series
8 ; NRG MP 161
7 ; hp LaserJet 2420
6 ; HP LaserJet 4000 Series
6 ; HP LaserJet 4100 Series
5 ; hp LaserJet 4350
3 ; NRG MP 7500
3 ; hp LaserJet 2300 series
3 ; RICOH Aficio MP 161
3 ; HP LaserJet M3027 MFP
2 ; HP LaserJet P3005
2 ;
2 ; HP Color LaserJet 4700
2 ; Samsung CLP-660 Series; OS 1.29.01.08 12-18-2007, 1.01.16,
1 ; MFP Type 104; OS 1.06.00.02 06-08-2007, V4.01.01(Type 104) 06-
1 ; hp color LaserJet 4600
1 ; LANIER LP235c
1 ; RICOH Aficio MP 7500
1 ; hp 9200C Digital Sender
1 ; hp LaserJet 4250
1 ; Canon MF4690PL
1 ; HP LaserJet 2200
1 ; LANIER LD015
1 ; RICOH Aficio MP 5000
1 ; hp color LaserJet 2500
1 ;
1
2
3
4
5
6
7
8
9
$printer_ip = $SNMP_Target.$i;
$printer_name = $snmp_value;
# der Hash ist wie folgt aufgebaut:
# %printers = (Druckername => { IP => Anzahl, Gesamtzahl => Anzahl} );
# Zählen der Vorkommen des Druckers
$printers{$printer_name}->{$printer_ip}++;
# Gesamtanzahl bei Druckenamen nur erhöhen, wenn Drucker mit IP noch nicht gezählt
$printers{$printer_name}->{'Gesamt'}++ if $printers{$printer_name}->{$printer_ip}==1;
1 2 3 4 5 6 7 8 9 10 11
while ($i <= 120){ my $printer_ip = $SNMP_Target.$i; $snmp_value = `snmpget -c public -v1 -OvQ $printer_ip HOST-RESOURCES-MIB::hrDeviceDescr.1 2>1`; $snmp_value =~ s/\"//g; my $printer_name = $snmp_value; # Zählen der Vorkommen des Druckers $printers{$printer_name}->{$printer_ip}++; # Gesamtanzahl bei Druckenamen nur erhöhen, wenn Drucker mit IP noch nicht gezählt $printers{$printer_name}->{'Gesamt'}++ if $printers{$printer_name}->{$printer_ip}==1; $i++; }
benjo+2008-08-15 12:35:04--aber irgend wie verstehe ich dein Lösungsansatz nicht ganz,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
my $SNMP_Target = "192.168.100"; # IP´s Hardcoded my $i = 20; my $snmp_value; my %printers; my $count = 0; my $total = 0; while ($i <= 120){ my $printer_ip = $SNMP_Target.$i; $snmp_value = `snmpget -c public -v1 -OvQ $printer_ip HOST-RESOURCES-MIB::hrDeviceDescr.1 2>1`; $snmp_value =~ s/\"//g; my $printer_name = $snmp_value; %printers = ($printer_name => { $printer_ip => $count, $total => $count} ); $i++; }
1
2
3
4
# Zählen der Vorkommen des Druckers
$printers{$printer_name}->{$printer_ip}++;
# Gesamtanzahl bei Druckenamen nur erhöhen, wenn Drucker mit IP noch nicht gezählt
$printers{$printer_name}->{'Gesamt'}++ if $printers{$printer_name}->{$printer_ip}==1;
benjo+2008-08-15 12:35:04--
Code (perl): (dl )1 2 3 4 5 6 7 8 9 10 11while ($i <= 120){ my $printer_ip = $SNMP_Target.$i; $snmp_value = `snmpget -c public -v1 -OvQ $printer_ip HOST-RESOURCES-MIB::hrDeviceDescr.1 2>1`; $snmp_value =~ s/\"//g; my $printer_name = $snmp_value; # Zählen der Vorkommen des Druckers $printers{$printer_name}->{$printer_ip}++; # Gesamtanzahl bei Druckenamen nur erhöhen, wenn Drucker mit IP noch nicht gezählt $printers{$printer_name}->{'Gesamt'}++ if $printers{$printer_name}->{$printer_ip}==1; $i++; }
meinst du das so ?, Danke für deine Hilfe
print $printers{$_}->{'Gesamt'} . " " . $_ for keys %printers;
print $printers{$printer_name}->{'Gesamt'} . " " . $_ for keys %printers;
1
2
3
4
5
6
13 x NRG DSm415
16 x HP LaserJet 4050 Series
13 x hp LaserJet 4200
8 x HP LaserJet P2015 Series
8 x NRG MP 161
[...]
benjo+2008-08-15 10:53:54--Code (perl): (dl )$snmp_value = `snmpget -c public -v1 -OvQ $SNMP_Target.$i HOST-RESOURCES-MIB::hrDeviceDescr.1 2>1`;
|< 1 2 >| | 11 Einträge, 2 Seiten |