亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
免费成人在线网站| 在线观看一区日韩| 色吧成人激情小说| 国产拍揄自揄精品视频麻豆| 亚洲精品乱码久久久久久黑人| 国产在线一区观看| 欧美日本精品一区二区三区| 亚洲欧美自拍偷拍| 国产麻豆精品在线| 精品国产三级电影在线观看| 天堂久久一区二区三区| 色综合天天综合网国产成人综合天| 久久综合久久综合久久| 免费人成网站在线观看欧美高清| 在线观看www91| 亚洲卡通动漫在线| 91亚洲国产成人精品一区二三| 久久影音资源网| 国产在线视频不卡二| 91精品国模一区二区三区| 亚洲综合免费观看高清完整版| 9色porny自拍视频一区二区| 国产色一区二区| 国产在线不卡一卡二卡三卡四卡| 日韩亚洲欧美综合| 美洲天堂一区二卡三卡四卡视频| 欧美精品一二三区| 丝袜美腿亚洲一区| 9191成人精品久久| 麻豆91精品91久久久的内涵| 91精品欧美综合在线观看最新| 日韩av电影免费观看高清完整版 | 国产精品视频一区二区三区不卡| 久久精品二区亚洲w码| 日韩亚洲欧美中文三级| 久久精品噜噜噜成人88aⅴ| 欧美一区二区三区婷婷月色| 老司机精品视频一区二区三区| 日韩欧美一区在线| 国产一区在线精品| 中文一区二区在线观看| 91伊人久久大香线蕉| 亚洲自拍偷拍欧美| 欧美一卡二卡在线观看| 极品少妇xxxx精品少妇偷拍| 国产日韩影视精品| 91丨九色丨蝌蚪富婆spa| 一区二区三区欧美日韩| 欧美一区二区私人影院日本| 免费看日韩精品| 久久久久久久精| 91老司机福利 在线| 三级一区在线视频先锋 | 欧美日韩视频第一区| 三级久久三级久久久| 精品少妇一区二区三区| 成人美女视频在线观看18| 亚洲色图欧洲色图| 欧美日韩一区久久| 激情小说亚洲一区| 亚洲色图清纯唯美| 日韩精品中文字幕一区| 成人午夜视频免费看| 亚洲国产一区视频| 久久久久久久综合| 在线精品视频小说1| 激情综合五月天| 樱花影视一区二区| 精品国产网站在线观看| 91免费看`日韩一区二区| 日本欧洲一区二区| 日韩毛片高清在线播放| 欧美一级视频精品观看| 不卡电影一区二区三区| 日本中文字幕不卡| 一区二区三区四区中文字幕| 欧美www视频| 在线视频观看一区| 国产成人综合在线| 日本sm残虐另类| 亚洲欧美二区三区| 亚洲精品在线一区二区| 欧美日韩精品专区| 99视频国产精品| 精品在线一区二区| 亚洲1区2区3区视频| 亚洲欧洲美洲综合色网| 久久综合久久鬼色| 日韩一级大片在线观看| 精品视频一区二区不卡| 99re8在线精品视频免费播放| 美国三级日本三级久久99| 亚洲图片自拍偷拍| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产福利一区二区三区视频 | 综合在线观看色| 26uuu精品一区二区| 欧美精品久久久久久久多人混战| 波波电影院一区二区三区| 国产在线乱码一区二区三区| 日本成人中文字幕| 日韩和的一区二区| 一区二区高清视频在线观看| 国产精品嫩草影院av蜜臀| 久久只精品国产| 日韩欧美成人午夜| 欧美一区二区精美| 欧美精品在线一区二区三区| 精品视频在线看| 在线日韩国产精品| 欧洲av一区二区嗯嗯嗯啊| 日本精品视频一区二区| 99久久综合色| 99免费精品在线观看| 91猫先生在线| 色哟哟欧美精品| 色婷婷久久久综合中文字幕 | 日韩精品一区二区三区视频| 777亚洲妇女| 日韩欧美电影在线| 精品电影一区二区| 久久精品人人做| 国产精品高潮呻吟| 亚洲精品国产第一综合99久久 | 成人禁用看黄a在线| 成人动漫中文字幕| 成人免费三级在线| 色综合久久久久综合99| 欧美日韩一区三区| 日韩精品一区二区三区四区| 精品国产一区二区三区忘忧草| 欧美r级电影在线观看| 国产亚洲精品福利| 日韩伦理免费电影| 午夜欧美在线一二页| 免费成人av在线| 国产不卡一区视频| 日本高清视频一区二区| 91精品久久久久久久久99蜜臂| 日韩午夜在线观看| 国产视频在线观看一区二区三区| 国产精品久久久久久久午夜片| 亚洲一区中文在线| 久草热8精品视频在线观看| 国产大陆亚洲精品国产| 色激情天天射综合网| 欧美一卡二卡在线| 国产精品天美传媒沈樵| 亚洲v日本v欧美v久久精品| 国模一区二区三区白浆| 色婷婷久久99综合精品jk白丝| 欧美女孩性生活视频| 国产欧美一区视频| 午夜一区二区三区在线观看| 精品一二线国产| 在线观看av不卡| 国产清纯美女被跳蛋高潮一区二区久久w| 成人欧美一区二区三区白人 | 亚洲超丰满肉感bbw| 久久69国产一区二区蜜臀| 色噜噜狠狠色综合中国| 精品电影一区二区| 亚洲chinese男男1069| 国产成a人亚洲| 制服丝袜中文字幕亚洲| 亚洲欧美区自拍先锋| 久久国产福利国产秒拍| 欧洲亚洲精品在线| 国产精品免费视频一区| 蜜桃传媒麻豆第一区在线观看| 一本久久精品一区二区| 欧美电影免费观看完整版| 亚洲综合丁香婷婷六月香| 成人一级黄色片| 日韩精品一区二区三区中文精品| 亚洲一区二区在线播放相泽| 成人免费看视频| 精品对白一区国产伦| 午夜不卡av免费| 欧美视频在线一区二区三区 | 1000精品久久久久久久久| 国产在线视视频有精品| 日韩一级片在线播放| 亚洲一区在线观看免费观看电影高清 | 婷婷亚洲久悠悠色悠在线播放| 91啪九色porn原创视频在线观看| 欧美韩日一区二区三区| 国产自产v一区二区三区c| 精品国产三级a在线观看| 石原莉奈一区二区三区在线观看| 欧亚洲嫩模精品一区三区| 亚洲激情图片一区| 91麻豆高清视频| 亚洲精品乱码久久久久| 日本高清不卡视频| 亚洲综合区在线| 欧美日韩一区二区三区不卡| 亚洲国产欧美在线| 欧美老肥妇做.爰bbww| 日韩高清中文字幕一区|