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

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

?? snmpmanager.cpp

?? .Net C++ sample code for SNMP programming, Source from Open Source (sample code).
?? CPP
字號:
//
//  SNMP - A C++ Wrapper for the WinSnmp library
//  Copyright (C) 2004  Rog閞io Paulo, rpaulo@bigfoot.com
//
//  This program is free software; you can redistribute it and/or
//  modify it under the terms of the GNU General Public License
//  as published by the Free Software Foundation; either version 2
//  of the License, or (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program; if not, write to the Free Software
//  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
//

#include "SNMPManager.h"
#include "SNMPException.h"

#include <sstream>
#include <iostream>

#define __VER__ "1.0"

#pragma warning(disable : 4996)

SNMPManager SNMPManager::_snmpManager;

SNMPManager::SNMPManager() {
	_init = false;
	_nMajorVersion = 0;
	_nMinorVersion = 0;
	_nLevel = 0;
}

SNMPManager::~SNMPManager() {
	cleanUp();
}

void SNMPManager::startup() {	
	if(!_init) {
		smiUINT32 nTranslateMode;
		smiUINT32 nRetransmitMode;
		if(SnmpStartup(&_nMajorVersion, &_nMinorVersion, &_nLevel, &nTranslateMode, &nRetransmitMode) != SNMPAPI_SUCCESS) {			
			SNMP_THROW_ERROR("Could not start WinSNMP API", SnmpGetLastError(NULL), SNMP_ERROR);
		}
		SnmpSetTranslateMode(SNMPAPI_UNTRANSLATED_V1);		SnmpSetRetransmitMode(SNMPAPI_OFF);
		_init = true;
	}
}


std::string SNMPManager::getDisplayInformation() const
{
	std::stringstream ss;
	ss << "WinSNMP API v" << _nMajorVersion << "." << _nMinorVersion << " level " << _nLevel;
	smiVENDORINFO vi;
	if(SnmpGetVendorInfo(&vi) == SNMPAPI_SUCCESS) {
		ss << " - " << vi.vendorName << " (" << vi.vendorEnterprise << ") " << vi.vendorContact;
		ss << " - API " << vi.vendorVersionId << " " << vi.vendorVersionDate;
	} else {
		ss << " - Vendor and API information not available";
	}	

	smiUINT32 nRetransmitMode;
	ss << " - (r=";
	if(SnmpGetRetransmitMode(&nRetransmitMode) == SNMPAPI_SUCCESS) {		
		switch(nRetransmitMode) {
			case SNMPAPI_ON:
				ss << "ON";
				break;
			case SNMPAPI_OFF:
				ss << "OFF";
				break;
			default:
				ss << "?";
				break;
		}		
	} else {
		ss << "n/a";
	}
	smiUINT32 nTranslateMode;
	ss << "; t=";
	if(SnmpGetTranslateMode(&nTranslateMode) == SNMPAPI_SUCCESS) {
		switch(nRetransmitMode) {
			case SNMPAPI_TRANSLATED:
				ss << "T";
				break;
			case SNMPAPI_UNTRANSLATED_V2 :
				ss << "UV2";
				break;
			case SNMPAPI_UNTRANSLATED_V1 :
				ss << "UV1";
				break;
			default:
				ss << "?";
				break;
		}
	} else {
		ss << "n/a";
	}
	ss << ")";
	return ss.str();
}

void SNMPManager::cleanUp() {
	if(_init) {
		_init = false;
		std::map<HSNMP_SESSION,SNMPSession*>::iterator i;
		while((i=_sessions.begin()) != _sessions.end()) {
			delete (*i).second;
		}
		SnmpCleanup();
	}
}

void SNMPManager::unregisterSession(SNMPSession * session) 
{	
	_sessions.erase(session->getHandle());
}

void SNMPManager::registerSession(SNMPSession * session) 
{	
	_sessions[session->getHandle()] = session;
}

SNMPSession * SNMPManager::getSession(HSNMP_SESSION handle) 
{	
	std::map<HSNMP_SESSION,SNMPSession*>::const_iterator pos;
	pos = _sessions.find(handle);
	if(pos == _sessions.end()) {
		return NULL;
	}
	return pos->second;
}


std::string SNMPManager::pduToStr(	HSNMP_ENTITY hDstEntity,
									HSNMP_ENTITY hSrcEntity,
									HSNMP_CONTEXT hContext,
									smiINT32 pduType,
									smiINT32 pduId,
									smiINT32 pduError,
									HSNMP_VBL hVbl,
									bool leftToRight) {
	std::stringstream ss;
	// direction
	char dstbuf[256];
	dstbuf[0] = '\0';
	if(hDstEntity) {
		if(SnmpEntityToStr(hDstEntity, 255, dstbuf) == SNMPAPI_FAILURE) {
			dstbuf[0] = '\0';		   
		}
	}
	char srcbuf[256];	
	srcbuf[0] = '\0';
	if(hSrcEntity) {
		if(SnmpEntityToStr(hSrcEntity, 255, srcbuf) == SNMPAPI_FAILURE) {			
			srcbuf[0] = '\0';
		}
	}
	if(leftToRight) {
		ss << srcbuf;
		if(srcbuf[0] != '\0') {
			ss << " ";
		}
		ss << ">";
		if(dstbuf[0] != '\0') {
			ss << " ";
		}
		ss << dstbuf;
		ss << " ";
	} else {
		ss << dstbuf;
		if(dstbuf[0] != '\0') {
			ss << " ";
		}
		ss << "<";
		if(srcbuf[0] != '\0') {
			ss << " ";
		}
		ss << srcbuf;
		ss << " ";
	}
	// head
	ss << SNMPManager::pduTypeToStr(pduType) << "(" << pduId << ", " << SNMPManager::pduErrorToStr(pduError) << ", ";
	smiOCTETS ctxString;
	if(SnmpContextToStr(hContext, &ctxString) == SNMPAPI_SUCCESS) {
		strncpy(srcbuf, (char*)ctxString.ptr, ctxString.len > 255 ? 255 : ctxString.len);
		srcbuf[ctxString.len > 255 ? 255 : ctxString.len] ='\0';
		ss << srcbuf << ", ";
		SnmpFreeDescriptor(SNMP_SYNTAX_OCTETS, &ctxString);
	} else {
		ss << "?, ";
	}
	// objects
	smiOID dRetName;	smiVALUE dRetValue;	int count = SnmpCountVbl(hVbl);			if(count) {		char szName[MAXOBJIDSTRSIZE+1];
		szName[0] = szName[MAXOBJIDSTRSIZE] = '\0';		for(int i=0; i<count; i++) {			if(SnmpGetVb(hVbl, i+1, &dRetName, &dRetValue) == SNMPAPI_FAILURE) {				break;			}
			if(SnmpOidToStr(&dRetName, sizeof(szName), szName) == SNMPAPI_FAILURE) {
				szName[0] = '?';
				szName[1] = '\0';
			}			if(pduType == SNMP_PDU_GETBULK || pduType == SNMP_PDU_GET || pduType == SNMP_PDU_GETNEXT) {				ss << szName;			} else {				SNMPObject obj;				obj.setValue(&dRetValue);				obj.setOID(szName);				ss << obj.getDisplayInformation();				
			}
			SnmpFreeDescriptor(SNMP_SYNTAX_OID, (smiLPOPAQUE)&dRetName);			if(dRetValue.syntax == SNMP_SYNTAX_OID) {				SnmpFreeDescriptor(dRetValue.syntax, (smiLPOPAQUE)&dRetValue.value.oid);
			} else if(	dRetValue.syntax == SNMP_SYNTAX_OPAQUE ||						dRetValue.syntax == SNMP_SYNTAX_OCTETS ||						dRetValue.syntax == SNMP_SYNTAX_BITS ||						dRetValue.syntax == SNMP_SYNTAX_IPADDR ||						dRetValue.syntax == SNMP_SYNTAX_NSAPADDR) {				SnmpFreeDescriptor(dRetValue.syntax, (smiLPOPAQUE)&dRetValue.value.string);
			}
			if(i < count-1) {
				ss << ", ";
			}
		}	}	ss << ")";
	return ss.str();
}

std::string SNMPManager::pduErrorToStr(int error) {
	switch(error) {
	/* Error Codes Common to SNMPv1 and SNMPv2 */
	case SNMP_ERROR_NOERROR: return "No error";
	case SNMP_ERROR_TOOBIG: return "Too big";
	case SNMP_ERROR_NOSUCHNAME: return "No such name";
	case SNMP_ERROR_BADVALUE: return "Bad value";
	case SNMP_ERROR_READONLY: return "Read only";
	case SNMP_ERROR_GENERR: return "Generic error";
	/* Error Codes Added for SNMPv2 */
	case SNMP_ERROR_NOACCESS: return "No access";
	case SNMP_ERROR_WRONGTYPE: return "Wrong type";
	case SNMP_ERROR_WRONGLENGTH: return "Wrong length";
	case SNMP_ERROR_WRONGENCODING: return "Wrong coding";
	case SNMP_ERROR_WRONGVALUE: return "Wrong value";
	case SNMP_ERROR_NOCREATION: return "No creation";
	case SNMP_ERROR_INCONSISTENTVALUE: return "Inconsistent value";
	case SNMP_ERROR_RESOURCEUNAVAILABLE: return "Resource unavailable";
	case SNMP_ERROR_COMMITFAILED: return "Commit failed";
	case SNMP_ERROR_UNDOFAILED: return "Undo failed";
	case SNMP_ERROR_AUTHORIZATIONERROR: return "Authorization error";
	case SNMP_ERROR_NOTWRITABLE: return "Not writable";
	case SNMP_ERROR_INCONSISTENTNAME: return "Inconsistent name";
	}
	return "?";
}

std::string SNMPManager::pduTypeToStr(int type) { 
	switch(type) {
	case SNMP_PDU_GET: return "GET";
	case SNMP_PDU_GETNEXT: return "GETNEXT";
	case SNMP_PDU_RESPONSE: return "RESPONSE";
	case SNMP_PDU_SET: return "SET";
	case SNMP_PDU_V1TRAP: return "V1TRAP";
	case SNMP_PDU_GETBULK: return "GETBULK";
	case SNMP_PDU_INFORM: return "INFORM";
	case SNMP_PDU_TRAP: return "TRAP";
	}
	return "?";
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产精品露脸对白| 轻轻草成人在线| 久久精品视频一区二区| 在线播放视频一区| 欧美精品第一页| 欧美挠脚心视频网站| 在线观看日韩高清av| 91国产免费观看| 欧美天堂一区二区三区| 欧美精选一区二区| 欧美一级二级三级乱码| 7777精品伊人久久久大香线蕉最新版| 欧美影视一区二区三区| 色94色欧美sute亚洲线路一ni| 91福利视频久久久久| 91国偷自产一区二区开放时间 | 中文字幕日韩欧美一区二区三区| 久久精品在这里| 中文字幕一区二区三区色视频| 亚洲免费在线视频| 日韩av电影一区| 国产精品综合一区二区| 成人国产免费视频| 欧美日韩中字一区| 日韩免费视频一区二区| 欧美国产精品一区二区三区| 亚洲乱码日产精品bd| 日韩主播视频在线| 国产福利精品一区| 欧美性感一类影片在线播放| 欧美一区二区三区小说| 国产精品久久久久久久久动漫| 一区二区三区久久久| 日韩中文字幕不卡| 成人av在线网站| 91精品啪在线观看国产60岁| 国产日韩欧美不卡| 午夜久久久久久久久久一区二区| 国产精品一区二区果冻传媒| 91九色02白丝porn| 国产欧美中文在线| 日韩成人一级片| 99麻豆久久久国产精品免费优播| 欧美老肥妇做.爰bbww视频| 久久久久久久久久电影| 亚洲一区二区三区四区五区中文 | 亚洲影院理伦片| 久久66热偷产精品| 欧美系列日韩一区| 国产亚洲综合在线| 日韩福利视频导航| 波多野结衣在线一区| 欧美一级欧美三级在线观看| 亚洲三级电影网站| 国产99久久久国产精品潘金 | 99精品国产99久久久久久白柏| 9191成人精品久久| 亚洲激情图片qvod| av日韩在线网站| 国产女同互慰高潮91漫画| 视频一区在线播放| 欧美日精品一区视频| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 久热成人在线视频| 91精品在线麻豆| 一区二区不卡在线播放| 91亚洲精华国产精华精华液| 国产欧美日产一区| 国产精品99久久久久久宅男| 日韩一区二区三区四区| 人妖欧美一区二区| 日韩一区二区三区观看| 日韩国产欧美在线观看| 欧美三区免费完整视频在线观看| 亚洲欧美日韩在线不卡| 91视频国产资源| 亚洲欧美色一区| 91国内精品野花午夜精品| 一区二区三区四区在线| 在线亚洲精品福利网址导航| 亚洲人xxxx| 91国产免费观看| 亚洲第一av色| 91精选在线观看| 久久不见久久见中文字幕免费| 欧美一区二区三区在线看| 免费成人在线播放| 久久伊人蜜桃av一区二区| 国产超碰在线一区| 一区二区中文字幕在线| 91美女福利视频| 亚洲sss视频在线视频| 欧美一区二区在线观看| 国产自产v一区二区三区c| 久久精品无码一区二区三区| 国产精品一区二区果冻传媒| 国产精品久久久久7777按摩| 91麻豆精东视频| 日韩 欧美一区二区三区| 2023国产一二三区日本精品2022| 大桥未久av一区二区三区中文| 亚洲欧美日韩在线播放| 日韩女优av电影在线观看| 丁香婷婷综合色啪| 亚洲国产精品视频| 精品免费日韩av| 一本色道久久综合狠狠躁的推荐| 亚洲丶国产丶欧美一区二区三区| 精品久久久三级丝袜| 成人福利视频网站| 日韩中文欧美在线| 国产精品久久久久影视| 欧美精品久久99| av激情综合网| 日本视频一区二区三区| 中文字幕在线一区二区三区| 这里只有精品电影| av不卡一区二区三区| 毛片基地黄久久久久久天堂| 亚洲视频在线一区观看| xfplay精品久久| 欧美视频一区二区三区| 国产91精品一区二区麻豆网站| 亚洲成va人在线观看| 欧美国产综合色视频| 日韩欧美综合一区| 在线看国产一区二区| 春色校园综合激情亚洲| 蜜桃av一区二区| 亚洲动漫第一页| 亚洲免费成人av| 国产亚洲视频系列| 欧美大片在线观看| 欧美人狂配大交3d怪物一区| 成人精品鲁一区一区二区| 经典三级一区二区| 爽好多水快深点欧美视频| 一区免费观看视频| 国产精品成人午夜| 国产色一区二区| 久久久精品免费观看| 日韩一二在线观看| 欧美一级日韩一级| 欧美一区日本一区韩国一区| 欧美日韩午夜在线| 欧美美女黄视频| 欧美日韩一级二级三级| 在线观看国产一区二区| 色系网站成人免费| 91在线观看地址| 91影院在线免费观看| 97se亚洲国产综合自在线观| 岛国精品一区二区| 暴力调教一区二区三区| 懂色av一区二区三区蜜臀| 成人一区二区三区| 99re成人精品视频| 一本大道av伊人久久综合| 91国产丝袜在线播放| 欧美色综合网站| 91麻豆精品91久久久久久清纯 | 成人av中文字幕| caoporm超碰国产精品| 99久久精品国产精品久久| aaa亚洲精品一二三区| 色呦呦一区二区三区| 在线观看亚洲专区| 日韩欧美国产系列| 久久精品日韩一区二区三区| 欧美经典一区二区| 亚洲欧美色综合| 首页综合国产亚洲丝袜| 蜜臀av一区二区在线免费观看 | 久久99久久99| 国产suv精品一区二区6| 91视频91自| 7777精品伊人久久久大香线蕉超级流畅 | 91视频国产资源| 91精品国产综合久久久久久久久久 | 欧美视频精品在线观看| 日韩欧美国产电影| 国产精品不卡一区二区三区| 一区二区三区91| 久久国产精品第一页| 不卡一区在线观看| 欧美日韩国产综合一区二区三区 | 国产人久久人人人人爽| 亚洲男女毛片无遮挡| 捆绑调教美女网站视频一区| 高清在线不卡av| 欧美精选在线播放| 国产精品久久久久婷婷二区次| 亚洲高清免费在线| 丁香亚洲综合激情啪啪综合| 欧美片在线播放| 自拍偷拍亚洲欧美日韩| 国模一区二区三区白浆| 欧美自拍偷拍午夜视频| 久久久久久久久伊人| 无吗不卡中文字幕|