-1
最初のget_tableがWLANコントローラからAPステータスを取得し、次にget_requestを使用してAPのホスト名を取得してステータステーブルを表示します。私が抱えている問題は、$ ap_nameが配列として戻ってくるということです。perl - SNMPからホスト名とAPステータスを解決する
my ($session, $error) = Net::SNMP->session(
-hostname => "$hostaddr",
-community => "$community",
-timeout => "30",
-version => "2c",
-port => "161");
if (!defined($session)) {
printf("ERROR: %s.\n", $error);
exit 1;
}
my $ap_stat = $session->get_table(-baseoid => $ap_stat_oid);
my $ap_name = $session->get_table(-baseoid => $ap_name_oid);
if (! defined $ap_stat || ! defined $ap_name) {
die "Failed to get OID '$ap_stat_oid': " . $session->error;
$session->close();
}
my @ap_name_array;
foreach my $ap_name_key (keys %$ap_name) {
push(@ap_name_array,$ap_name->{$ap_name_key});
}
my @ap_stat_array;
foreach my $ap_stat_key (keys %$ap_stat) {
push(@ap_stat_array,$ap_stat->{$ap_stat_key});
}
編集:私はそれを少し変更しましたが、次に何が分かるかわかりません。私は、印刷出力を配列に格納して、それらを結合し、結合された配列のために印刷したいと思いますが、どうすればよいか分かりません。
編集:ここに私の所望の出力があります:
AP-01 = 1
AP-02 = 1
AP-03 = 2
AP-04 = 1
など。
より編集:私は今、私はちょうど右の出力を取得しようとしている、配列に値を得ました。
ハッシュへの参照は、VarBindListの内容を含むブロッキングモードで返されます。ノンブロッキングモードでは、エラーが発生していないときに真の値が返されます。どちらのモードでも、エラーが発生すると未定義の値が返されます。エラーの原因を特定するには、error()メソッドを使用できます。 – Pradeep
私もそれを読んでいますが、私は非ブロックでget_tableが必要です。 AP名のために別のセッションを開く必要がありますか? – cflinspach
あなたが実際に使用しているOIDを表示しておけば助けになります。 – ThisSuitIsBlackNot