亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? snmp_session.pm

?? 主要用于監控網絡流量并動態產生可視化結果
?? PM
?? 第 1 頁 / 共 2 頁
字號:
# -*- mode: Perl -*-######################################################################### SNMP Request/Response Handling######################################################################### The abstract class SNMP_Session defines objects that can be used### to communicate with SNMP entities.  It has methods to send### requests to and receive responses from an agent.###### Currently it has one subclass, SNMPv1_Session, which implements### the SNMPv1 protocol.######################################################################### Created by:  Simon Leinen  <simon@switch.ch>###### Contributions and fixes by:###### Matthew Trunnell <matter@media.mit.edu>### Tobias Oetiker <oetiker@ee.ethz.ch>### Heine Peters <peters@dkrz.de>### Daniel L. Needles <dan_needles@INS.COM>### Mike Mitchell <mcm@unx.sas.com>### Clinton Wong <clintdw@netcom.com>### Alan Nichols <Alan.Nichols@Ebay.Sun.COM>### Mike McCauley <mikem@open.com.au>######################################################################package SNMP_Session;		require 5.002;use strict qw(vars subs);	# cannot use strict subs here				# because of the way we use				# generated file handlesuse Exporter;use vars qw(@ISA $VERSION @EXPORT $errmsg $suppress_warnings);use Socket;use BER;sub map_table ($$$);sub map_table_4 ($$$$);sub map_table_start_end ($$$$$$);sub index_compare ($$);sub oid_diff ($$);$VERSION = '0.71';@ISA = qw(Exporter);@EXPORT = qw(errmsg suppress_warnings index_compare oid_diff);my $default_debug = 0;### Default initial timeout (in seconds) waiting for a response PDU### after a request is sent.  Note that when a request is retried, the### timeout is increased by BACKOFF (see below).###my $default_timeout = 2.0;### Default number of retries for each SNMP request.  If no response### is received after TIMEOUT seconds, the request is resent and a new### response awaited with a longer timeout (see the documentation on### BACKOFF below).###my $default_retries = 5;### Default backoff factor for SNMP_Session objects.  This factor is### used to increase the TIMEOUT every time an SNMP request is### retried.###my $default_backoff = 1.0;### Default value for maxRepetitions.  This specifies how many table### rows are requested in getBulk requests.  Used when walking tables### using getBulk (only available in SNMPv2(c) and later).  If this is### too small, then a table walk will need unnecessarily many### request/response exchanges.  If it is too big, the agent may### compute many variables after the end of the table.  It is### recommended to set this explicitly for each table walk by using### map_table_4().###my $default_max_repetitions = 12;$SNMP_Session::errmsg = '';$SNMP_Session::suppress_warnings = 2;sub get_request      { 0 | context_flag };sub getnext_request  { 1 | context_flag };sub get_response     { 2 | context_flag };sub set_request      { 3 | context_flag };sub trap_request     { 4 | context_flag };sub getbulk_request  { 5 | context_flag };sub inform_request   { 6 | context_flag };sub trap2_request    { 7 | context_flag };sub standard_udp_port { 161 };sub open{    return SNMPv1_Session::open (@_);}sub timeout { $_[0]->{timeout} }sub retries { $_[0]->{retries} }sub backoff { $_[0]->{backoff} }sub set_timeout {    my ($session, $timeout) = @_;    die "timeout ($timeout) must be a positive number" unless $timeout > 0.0;    $session->{'timeout'} = $timeout;}sub set_retries {    my ($session, $retries) = @_;    die "retries ($retries) must be a non-negative integer"	unless $retries == int ($retries) && $retries >= 0;    $session->{'retries'} = $retries; }sub set_backoff {    my ($session, $backoff) = @_;    die "backoff ($backoff) must be a number >= 1.0"	unless $backoff == int ($backoff) && $backoff >= 1.0;    $session->{'backoff'} = $backoff; }sub encode_request_3 ($$$@){    my($this, $reqtype, $encoded_oids_or_pairs, $i1, $i2) = @_;    my($request);    local($_);    ++$this->{request_id};    foreach $_ (@{$encoded_oids_or_pairs}) {      if (ref ($_) eq 'ARRAY') {	$_ = &encode_sequence ($_->[0], $_->[1])	  || return $this->ber_error ("encoding pair");      } else {	$_ = &encode_sequence ($_, encode_null())	  || return $this->ber_error ("encoding value/null pair");      }    }    $request = encode_tagged_sequence	($reqtype,	 encode_int ($this->{request_id}),	 defined $i1 ? encode_int ($i1) : encode_int_0,	 defined $i2 ? encode_int ($i2) : encode_int_0,	 encode_sequence (@{$encoded_oids_or_pairs}))	  || return $this->ber_error ("encoding request PDU");    return $this->wrap_request ($request);}sub encode_get_request{    my($this, @oids) = @_;    return encode_request_3 ($this, get_request, \@oids);}sub encode_getnext_request{    my($this, @oids) = @_;    return encode_request_3 ($this, getnext_request, \@oids);}sub encode_getbulk_request{    my($this, $non_repeaters, $max_repetitions, @oids) = @_;    return encode_request_3 ($this, getbulk_request, \@oids,			     $non_repeaters, $max_repetitions);}sub encode_set_request{    my($this, @encoded_pairs) = @_;    return encode_request_3 ($this, set_request, \@encoded_pairs);}sub encode_trap_request ($$$$$$@){    my($this, $ent, $agent, $gen, $spec, $dt, @pairs) = @_;    my($request);    local($_);    foreach $_ (@pairs) {      if (ref ($_) eq 'ARRAY') {	$_ = &encode_sequence ($_->[0], $_->[1])	  || return $this->ber_error ("encoding pair");      } else {	$_ = &encode_sequence ($_, encode_null())	  || return $this->ber_error ("encoding value/null pair");      }    }    $request = encode_tagged_sequence	(trap_request, $ent, $agent, $gen, $spec, $dt, encode_sequence (@pairs))	  || return $this->ber_error ("encoding trap PDU");    return $this->wrap_request ($request);}sub decode_get_response{    my($this, $response) = @_;    my @rest;    @{$this->{'unwrapped'}};}sub decode_trap_request ($$) {    my ($this, $trap) = @_;    my ($snmp_version, $community, $ent, $agent, $gen, $spec, $dt,	$bindings);    ($snmp_version, $community, $ent, $agent, $gen, $spec, $dt, $bindings)	= decode_by_template ($trap, "%{%i%s%*{%O%A%i%i%u%{%@",			      SNMP_Session::trap_request			      );    return undef	unless $snmp_version == $this->snmp_version ();    if (!defined $ent) {	warn "BER error decoding trap:\n  ".$BER::errmsg."\n";    }    return ($community, $ent, $agent, $gen, $spec, $dt, $bindings);}sub wait_for_response{    my($this) = shift;    my($timeout) = shift || 10.0;    my($rin,$win,$ein) = ('','','');    my($rout,$wout,$eout);    vec($rin,$this->sockfileno,1) = 1;    select($rout=$rin,$wout=$win,$eout=$ein,$timeout);}sub get_request_response ($@){    my($this, @oids) = @_;    return $this->request_response_5 ($this->encode_get_request (@oids),				      get_response, \@oids, 1);}sub set_request_response ($@){    my($this, @pairs) = @_;    return $this->request_response_5 ($this->encode_set_request (@pairs),				      get_response, \@pairs, 1);}sub getnext_request_response ($@){    my($this,@oids) = @_;    return $this->request_response_5 ($this->encode_getnext_request (@oids),				      get_response, \@oids, 1);}sub getbulk_request_response ($$$@){    my($this,$non_repeaters,$max_repetitions,@oids) = @_;    return $this->request_response_5	($this->encode_getbulk_request ($non_repeaters,$max_repetitions,@oids),	 get_response, \@oids, 1);}sub trap_request_send ($$$$$$@){    my($this, $ent, $agent, $gen, $spec, $dt, @pairs) = @_;    my($req);    $req = $this->encode_trap_request ($ent, $agent, $gen, $spec, $dt, @pairs);    ## Encoding may have returned an error.    return undef unless defined $req;    $this->send_query($req)	|| return $this->error ("send_trap: $!");    return 1;}sub request_response_5 ($$$$$){    my ($this, $req, $response_tag, $oids, $errorp) = @_;    my $retries = $this->retries;    my $timeout = $this->timeout;    my ($nfound, $timeleft);    ## Encoding may have returned an error.    return undef unless defined $req;    $timeleft = $timeout;    $this->send_query ($req)	|| return $this->error ("send_query: $!");    while ($retries > 0) {	($nfound, $timeleft) = $this->wait_for_response($timeleft);	if ($nfound > 0) {	    my($response_length);	    $response_length		= $this->receive_response_3 ($response_tag, $oids, $errorp);	    if ($response_length) {		return $response_length;	    } elsif (defined ($response_length)) {		# A response has been received, but for a different		# request ID.	    } else {		return undef;	    }	} else {	    ## No response received - retry	    --$retries;	    $timeout *= $this->backoff;	    $timeleft = $timeout;	    $this->send_query ($req)		|| return $this->error ("send_query: $!");	}    }    $this->error ("no response received");}sub error_return ($$){    my ($this,$message) = @_;    $SNMP_Session::errmsg = $message;    unless ($SNMP_Session::suppress_warnings) {	$message =~ s/^/  /mg;	warn ("Error:\n".$message."\n");    }    return undef;}sub error ($$){    my ($this,$message) = @_;    my $session = $this->to_string;    $SNMP_Session::errmsg = $message."\n".$session;    unless ($SNMP_Session::suppress_warnings) {	$session =~ s/^/  /mg;	$message =~ s/^/  /mg;	warn ("SNMP Error:\n".$SNMP_Session::errmsg."\n");    }    return undef;}sub ber_error ($$){  my ($this,$type) = @_;  my ($errmsg) = $BER::errmsg;  $errmsg =~ s/^/  /mg;  return $this->error ("$type:\n$errmsg");}sub map_table ($$$) {    my ($session, $columns, $mapfn) = @_;    return $session->map_table_4 ($columns, $mapfn,				  $session->default_max_repetitions ());}sub map_table_4 ($$$$) {    my ($session, $columns, $mapfn, $max_repetitions) = @_;    return $session->map_table_start_end ($columns, $mapfn,					  "", undef,					  $max_repetitions);}sub map_table_start_end ($$$$$$) {    my ($session, $columns, $mapfn, $start, $end, $max_repetitions) = @_;    my @encoded_oids;    my $call_counter = 0;    my $base_index = $start;    do {	foreach (@encoded_oids = @{$columns}) {	    $_=encode_oid (@{$_},split '\.',$base_index)		|| return $session->ber_error ("encoding OID $base_index");	}	if ($session->getnext_request_response (@encoded_oids)) {	    my $response = $session->pdu_buffer;	    my ($bindings) = $session->decode_get_response ($response);	    my $smallest_index = undef;	    my @collected_values = ();	    my @bases = @{$columns};	    while ($bindings ne '') {		my ($binding, $oid, $value);		my $base = shift @bases;		($binding, $bindings) = decode_sequence ($bindings);		($oid, $value) = decode_by_template ($binding, "%O%@");		my $out_index;		$out_index = &oid_diff ($base, $oid);		my $cmp;		if (!defined $smallest_index		    || ($cmp = index_compare ($out_index,$smallest_index)) == -1) {		    $smallest_index = $out_index;		    grep ($_=undef, @collected_values);		    push @collected_values, $value;		} elsif ($cmp == 1) {		    push @collected_values, undef;		} else {		    push @collected_values, $value;		}	    }	    (++$call_counter,	     &$mapfn ($smallest_index, @collected_values))		if defined $smallest_index;	    $base_index = $smallest_index;	} else {	    return undef;	}    }    while (defined $base_index	   && (!defined $end || index_compare ($base_index, $end) < 0));    $call_counter;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美影片第一页| 狠狠色伊人亚洲综合成人| 91香蕉国产在线观看软件| 亚洲天堂2016| 欧美三级欧美一级| 麻豆91免费看| 国产丝袜美腿一区二区三区| 国产福利精品一区二区| 亚洲私人影院在线观看| 欧美日韩www| 国内国产精品久久| 亚洲国产高清不卡| 91久久人澡人人添人人爽欧美| 一区二区三区**美女毛片| 欧美精品久久一区二区三区| 裸体歌舞表演一区二区| 国产精品超碰97尤物18| 欧美色视频在线| 韩国女主播成人在线| 国产精品伦理一区二区| 欧美老女人第四色| 豆国产96在线|亚洲| 亚洲一区二区三区四区不卡| 精品国产成人系列| 色综合激情久久| 日本欧美一区二区在线观看| 国产精品午夜免费| 欧美一级专区免费大片| 成人国产精品免费| 喷水一区二区三区| 国产精品每日更新| 日韩视频在线永久播放| 99精品久久只有精品| 免费看日韩精品| 亚洲欧美偷拍另类a∨色屁股| 日韩一区二区在线观看视频| 一本一本大道香蕉久在线精品| 蜜臀av性久久久久蜜臀aⅴ流畅| 中文字幕日韩欧美一区二区三区| 宅男在线国产精品| 色综合亚洲欧洲| 国产成人综合在线| 日本美女视频一区二区| 亚洲欧洲综合另类| 国产日韩v精品一区二区| 欧美高清视频一二三区 | 亚洲风情在线资源站| 精品不卡在线视频| 欧美日韩一区久久| 99在线精品免费| 韩国av一区二区三区在线观看| 亚洲一二三四在线观看| 亚洲欧美在线高清| 久久精品欧美一区二区三区麻豆| 欧美精品 日韩| 欧美午夜在线一二页| 国产视频一区不卡| 欧美一区二区三区免费在线看 | 在线免费观看日本一区| 成人激情视频网站| 国产精品一区不卡| 国产乱码精品一区二区三区忘忧草| 日本vs亚洲vs韩国一区三区二区 | 国产性做久久久久久| 欧美videos中文字幕| 91麻豆精品国产91久久久| 在线免费不卡电影| 欧美亚洲动漫精品| 欧美丝袜自拍制服另类| 91国偷自产一区二区开放时间 | 日韩高清不卡一区二区| 亚洲一区二区三区不卡国产欧美| 亚洲欧美日本在线| 亚洲欧美一区二区三区久本道91 | 久久99精品视频| 男人的天堂亚洲一区| 天天亚洲美女在线视频| 人人狠狠综合久久亚洲| 精品在线免费观看| 激情欧美一区二区| 国产精品小仙女| av成人老司机| 色综合色狠狠综合色| 91国在线观看| 91精品欧美福利在线观看| 日韩女优毛片在线| 国产无人区一区二区三区| 久久久国产一区二区三区四区小说| 国产亚洲va综合人人澡精品| 中文一区二区在线观看| 亚洲人成网站精品片在线观看| 亚洲最色的网站| 日韩电影在线观看一区| 麻豆极品一区二区三区| 高潮精品一区videoshd| 色综合网色综合| 777xxx欧美| 国产欧美日韩亚州综合| 亚洲美女淫视频| 日韩电影免费在线看| 国产伦精品一区二区三区免费 | 香蕉加勒比综合久久| 日韩 欧美一区二区三区| 国产在线播精品第三| 成人午夜av影视| 精品国产99国产精品| 亚洲精品一区二区三区福利| 国产精品久久久一本精品| 亚洲高清免费视频| 久久se这里有精品| 99麻豆久久久国产精品免费| 色呦呦一区二区三区| 色综合久久天天| 制服丝袜在线91| 国产精品欧美精品| 日本视频在线一区| 97精品国产97久久久久久久久久久久| 精品视频在线免费看| 国产午夜精品一区二区三区视频 | 亚洲国产中文字幕在线视频综合 | 99久久精品国产导航| 欧美一区二区大片| 亚洲精品写真福利| 蜜桃视频免费观看一区| 色综合久久88色综合天天 | 国产精品国产三级国产普通话蜜臀 | 色婷婷精品久久二区二区蜜臀av| 日韩三级在线免费观看| 一区二区三区高清不卡| 精品在线亚洲视频| 欧美疯狂做受xxxx富婆| 亚洲欧洲精品一区二区三区 | 国产酒店精品激情| 777久久久精品| 亚洲激情自拍偷拍| 高清在线观看日韩| 欧美一区二区成人| 亚洲成人自拍偷拍| 91小视频在线免费看| 国产亚洲成av人在线观看导航| 日韩有码一区二区三区| 色噜噜狠狠成人中文综合| 国产精品系列在线| 国产精品一二三四| 亚洲精品一线二线三线无人区| 亚洲成人动漫av| 在线精品国精品国产尤物884a| 欧美国产激情二区三区| 国产又粗又猛又爽又黄91精品| 欧美精品一卡两卡| 一区二区三区在线高清| 99久久国产综合精品女不卡| 国产精品毛片久久久久久| 国产成人综合亚洲网站| 国产亚洲午夜高清国产拍精品 | 全部av―极品视觉盛宴亚洲| 欧美体内she精高潮| 亚洲精品va在线观看| 91麻豆免费观看| 亚洲欧洲制服丝袜| 色天天综合久久久久综合片| 亚洲蜜桃精久久久久久久| 91在线免费播放| 亚洲精品日日夜夜| 在线观看中文字幕不卡| 亚洲综合丁香婷婷六月香| 91一区二区三区在线播放| 日韩一区有码在线| 91福利在线看| 亚洲电影激情视频网站| 欧美日韩免费高清一区色橹橹| 亚洲综合视频网| 在线91免费看| 久久国产欧美日韩精品| 2020国产精品久久精品美国| 国产乱理伦片在线观看夜一区| 久久久久97国产精华液好用吗| 国产精品一区二区男女羞羞无遮挡 | 亚洲成a人v欧美综合天堂| 欧美色综合久久| 日韩高清不卡在线| 欧美精品一区二区高清在线观看| 国产永久精品大片wwwapp| 欧美经典一区二区| 色狠狠色噜噜噜综合网| 三级久久三级久久久| 精品国产亚洲一区二区三区在线观看| 久久电影网站中文字幕| 国产精品视频yy9299一区| 一本久久综合亚洲鲁鲁五月天| 午夜精品福利视频网站| 久久麻豆一区二区| 91免费版pro下载短视频| 亚洲国产精品影院| 久久综合色天天久久综合图片| 成人免费毛片aaaaa**| 亚洲成人1区2区| 欧美激情一区二区在线| 在线亚洲欧美专区二区| 久久精品国产999大香线蕉|