|< 1 2 >| | 13 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[$ while $dat = $sth -> fetchrow_arrayref $]
[- $w = 1; -]
[$ foreach $v @$dat $]
[-var %thelabel = ("$w" => "$v"); -]
#Bemerkung: Kontrollausgabe --> dabei wird aber nur der Hash mit dem Namen 1 ausgegeben und das nur, wenn dieser gerade zugewiesen wurde
Wert [+ $w +]: [+ $thelabel{$w}+] ***** [+ $thelabel{1} +]</b><br>
[- $w++; -]
[$ endforeach $]
[- %thelabel2 = ($thelabel{1}, $thelabel{3}) -]
[$ endwhile $]
[+ $thelabel2{S002} +]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#! /usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my %hash;
my $w = 1;
for $v (0..3){
%hash = ($w => $v);
$w++;
}
print Dumper(\%hash);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#! /usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my %hash;
my $w = 1;
for $v (0..3){
$hash{$w} = $v;
$w++;
}
print Dumper(\%hash);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[$ while $dat = $sth -> fetchrow_arrayref $]
[- $w = 1; -]
[- %thelabel; -]
[$ foreach $v @$dat $]
[- $thelabel{$w} = $v; -]
#Bemerkung: Kontrollausgabe --> dabei wird aber nur der Hash mit dem Namen 1 ausgegeben und das nur, wenn dieser gerade zugewiesen wurde
Wert [+ $w +]: [+ $thelabel{$w}+] ***** [+ $thelabel{1} +]</b><br>
[- $w++; -]
[$ endforeach $]
[- %thelabel2 = ($thelabel{1}, $thelabel{3}) -]
[$ endwhile $]
[+ $thelabel2{S002} +]
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 30 31 32 33 34 35 36 37 38 39
use strict; my @ip = qw(10.17.5.201 10.16.5.201 10.37.4.201 10.46.10.201 10.17.3.201 10.18.5.201 ); my $ipaddress; my @port_address_table; my @mac_tabel_filter; my @mac_tabel_result; my $graph; my %mac_ip; my %graph; my %port_analyse_result; my %port_analyse_result2; foreach $ipaddress (@ip){ my $host = ("rmon12\@$ipaddress"); my @snmp_result_port_mac = &snmpwalk($host, ("1.3.6.1.2.1.2.2.1.6")); my @mac_address_port = convert_mac_address(@snmp_result_port_mac); %port_analyse_result = port_analyse(@snmp_result_port_mac); #push (my @port_analyse_hash, { %port_analyse_result} ); #print %port_analyse_result; #%port_analyse_result2 = (%port_analyse_result);
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
sub port_analyse { my %hash; my %oid_mac; my $z=""; my $item=""; my $oid=""; my $data=""; my $mac=""; my @zeichen; #Make hash for converting ASCII-character to integer (used for MAC readout) for(my $i=0; $i<256;$i++){ $z = sprintf("%c",$i); $hash{$z}=$i; } #foreach $item (@snmp_result_port_mac){ foreach $item (@_){ #Split the OIDs from the VALUEs and save them separate ($oid, $data) = split(/:/, $item, 2); #Perl converts the received data for MAC-Address (normaly returned #as hexadezimal numbers) into strings; this have to be reconverted for( my $i=0;$i<=5;$i++) { #Seperate the 6 characters representing the MAC-Address into array elements $zeichen[$i]=substr($data, $i, 1); } #Convert each character from ASCII-Character to its dezimal number #and convert the number into hexadezimal to get MAC $mac=sprintf("%.2X-%.2X-%.2X-%.2X-%.2X-%.2X\n",$hash{$zeichen[0]}, $hash{$zeichen[1]}, $hash{$zeichen[2]}, $hash{$zeichen[3]}, $hash{$zeichen[4]}, $hash{$zeichen[5]}); (my $port_oid) = split (/1\.3\.6\.1\.2\.1\.2\.2\.1\.6\./, $oid); $oid_mac{$mac} = $port_oid;   ;   ; } return (%oid_mac); } 1;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my %hash;
my $i;
fill_hash(\%hash); # add some data
print Dumper \%hash; # dump it
fill_hash(\%hash); # add more data
print Dumper \%hash; # dump it again
exit;
sub fill_hash {
my $hash_ref = shift || {};
$hash_ref->{$i} = ord(++$i) for 1..4;
}
Quoteich kenn mich jetzt nicht speziell mit EmbedPerl aus (sieht ja grausam aus) aber normalerweise sollte sich das beheben lassen, indem man den hash vor der schleife per my deklariert, sonst lebt er nur innerhalb der schleife.
|< 1 2 >| | 13 Einträge, 2 Seiten |