URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 34320
[ Назад ]

Исходное сообщение
"SNMP+IPFW Или как получить информацию count IPFW через snmp"

Отправлено Alex_Kuznetsov , 05-Сен-03 10:49 
Привет всем !

Может кто-то сталкивался с задачей получения информации count IPFW через snmp

Может подскажет какой MIB или есть может быть другие пути

Заранее благодарен.


Содержание

Сообщения в этом обсуждении
"SNMP+IPFW Или как получить информацию count IPFW через snmp"
Отправлено keepver , 05-Сен-03 11:21 
http://www.sat.t.u-tokyo.ac.jp/~hideyuki/ipfwsnmp-e.html

"SNMP+IPFW Или как получить информацию count IPFW через snmp"
Отправлено stricty , 05-Сен-03 11:22 
>Может кто-то сталкивался с задачей получения информации count IPFW через snmp
>Может подскажет какой MIB или есть может быть другие пути
>Заранее благодарен.

В snmpd.conf:
pass .1.3.6.1.4.1.2021.255 /usr/local/libexec/ipfwsnmp .1.3.6.1.4.1.2021.255

Теперь /usr/local/libexec/ipfwsnmp :
#!/usr/bin/perl
# ipfwsnmp - written by Hideyuki Suzuki <hideyuki@sat.t.u-tokyo.ac.jp>
# $Id: ipfwsnmp,v 1.11 2000/08/15 16:06:33 hideyuki Exp $
$place = $ARGV[0];
$opt = $ARGV[1];
$req = $ARGV[2];
exit 0 unless ($next = ($opt eq "-n")) || ($opt eq "-g");
if ($next && ($req eq $place)) {
  $found = 1; $next = 0;
} elsif ($req =~ s/^$place\.(\d+)$/\1/) {
  $found = 0;
} else {
  exit 0;
}
@result = `/sbin/ipfw -a list`;
foreach (@result) {
  next unless /^0*(\d+)\s+(\d+)\s+(\d+)\s+(.*)$/;
  # $1:number $2:packet $3:octet $4:rule
  $found = 1 if ($1 == $req);
  next unless $found;
  if (!$next) {
    print "$place.$1\ninteger\n";
    printf("%d\n", substr($3, -9));
    last;
  }
  $next = 0;
}
exit 0;

А лучше используй IPA  http://ipa-system.sourceforge.net
Пусть SNMP своим делом занимается.