C++ SNMP Stack  0.10
클래스 | 함수
SnmpStack

SNMP 메시지 전송/수신 라이브러리 더 자세히 ...

클래스

class  CSnmpSession
 동기 방식으로 SNMP 통신하는 클래스 더 자세히 ...
class  CSnmpStack
 SNMP 메시지 전송/수신 클래스 더 자세히 ...
class  ISnmpStackCallBack
 SNMP stack callback 인터페이스 더 자세히 ...
class  CSnmpStackSetup
class  CSnmpTcpAgentClientArg
 TCP 기반 SNMP 메시지 수신용 클라이언트 연결 쓰레드 생성 인자 더 자세히 ...
class  CSnmpTransaction
 SNMP transaction 저장 클래스 더 자세히 ...
class  CSnmpTransactionList
 SNMP 트랙젠션 리스트를 저장하는 클래스 더 자세히 ...

함수

void LogPacket (const char *pszPacket, int iPacketLen)
 패킷을 HEX 문자열로 로그에 출력한다.
THREAD_API SnmpSessionThread (LPVOID lpParameter)
virtual void ISnmpStackCallBack::RecvResponse (CSnmpMessage *pclsRequest, CSnmpMessage *pclsResponse)=0
 SNMP 응답 메시지 수신 이벤트 callback.
THREAD_API SnmpStackThread (LPVOID lpParameter)
 SNMP stack 쓰레드
bool StartSnmpStackThread (CSnmpStack *pclsSnmpStack)
 SNMP stack 쓰레드를 시작한다.
void StopSnmpStackThread ()
 SNMP stack 쓰레드를 종료한다.
bool IsSnmpStackThreadRun ()
 SNMP stack 쓰레드가 실행 중인지 검사한다.
THREAD_API SnmpTcpAgentClientThread (LPVOID lpParameter)
 TCP 기반 SNMP 메시지 수신 쓰레드
THREAD_API SnmpTcpAgentListenThread (LPVOID lpParameter)
 SNMP 클라이언트의 TCP 연결 처리 쓰레드
THREAD_API SnmpUdpThread (LPVOID lpParameter)
 SNMP 메시지 수신 쓰레드
bool StartSnmpUdpThread (CSnmpStack *pclsSnmpStack)
 SNMP 메시지 수신 쓰레드를 시작한다.
void StopSnmpUdpThread ()
 SNMP 메시지 수신 쓰레드를 중지한다.
bool IsSnmpUdpThreadRun ()
 SNMP 메시지 수신 쓰레드가 실행 중인지 검사한다.
bool CSnmpAgent::Open (int iUdpPort, const char *pszCommunity, const char *pszUserName, const char *pszAuthPassWord, const char *pszPrivPassWord)
 SNMP 패킷 수신을 위한 UDP 포트를 연다.
void CSnmpAgent::Close ()
 SNMP 패킷 수신을 위한 UDP 포트를 닫는다.
bool CSnmpAgent::RecvRequest (CSnmpMessage *pclsRequest, int iTimeout)
 SNMP 요청 메시지 수신 대기 & 수신한다.
bool CSnmpAgent::SendResponse (CSnmpMessage *pclsResponse)
 SNMP 응답 메시지를 전송한다.
bool CSnmpSession::SetDestination (const char *pszIp, int iPort=161, bool bTcp=false, bool bTrapOnly=false)
 SNMP 요청 메시지를 전송할 SNMP Agent 주소를 설정한다.
bool CSnmpSession::SetSnmpv2 (const char *pszCommunity)
 SNMPv2 를 위한 SNMP community 문자열을 설정한다.
bool CSnmpSession::SetSnmpv3 (const char *pszUserName, const char *pszAuthPassWord, const char *pszPrivPassWord, const char *pszAuthEngineId=NULL)
 SNMPv3 를 위한 사용자 아이디 및 비밀번호를 설정한다.
bool CSnmpSession::SetTimeout (int iMiliSecond)
 재전송을 위한 수신 대기 timeout 시간을 설정한다.
bool CSnmpSession::SetReSendCount (int iReSendCount)
 timeout 되었을 때에 재전송하는 개수를 설정한다.
void CSnmpSession::SetDebug (bool bDebug)
 SNMP 통신 디버그 모드를 설정한다.
bool CSnmpSession::Open ()
 SNMP 통신을 위한 UDP 소켓을 생성한다.
void CSnmpSession::Close ()
 SNMP 통신을 위한 UDP 소켓을 종료한다.
bool CSnmpSession::Check ()
 세션이 유효한지 검사한다.
const char * CSnmpSession::GetIp ()
 destination IP 주소를 리턴한다.
bool CSnmpSession::SendGetRequest (const char *pszOid, CAsnType **ppclsAsnType)
 SNMP GET 메시지를 전송하여서 이에 대한 응답을 수신한다.
bool CSnmpSession::SendGetNextRequest (const char *pszOid, std::string **ppstrResponseOid, CAsnType **ppclsAsnType)
 SNMP GET NEXT 메시지를 전송하여서 이에 대한 응답을 수신한다.
bool CSnmpSession::SendGetRequest (const char *pszOid, std::string &strValue)
 SNMP GET 메시지를 전송하여서 이에 대한 응답을 수신한다.
bool CSnmpSession::SendGetRequest (const char *pszOid, uint32_t &iValue)
 SNMP GET 메시지를 전송하여서 이에 대한 응답을 수신한다.
bool CSnmpSession::SendGetNextRequest (const char *pszOid, std::string **ppstrResponseOid, std::string &strValue)
 SNMP GET NEXT 메시지를 전송하여서 이에 대한 응답을 수신한다.
bool CSnmpSession::SendGetNextRequest (const char *pszOid, std::string **ppstrResponseOid, uint32_t &iValue)
 SNMP GET NEXT 메시지를 전송하여서 이에 대한 응답을 수신한다.
bool CSnmpSession::SendRequest (CSnmpMessage *pclsRequest, CSnmpMessage *pclsResponse)
 SNMPv2 이면 SNMP 요청 메시지를 전송한 후, 이에 대한 응답 메시지를 수신한다.
bool CSnmpSession::SendRequest (CSnmpMessage *pclsRequest)
 SNMP trap 과 같은 단방향 SNMP 메시지를 전송한다.
bool CSnmpStack::Start (CSnmpStackSetup &clsSetup, ISnmpStackCallBack *pclsCallBack)
 SNMP stack 을 시작한다.
bool CSnmpStack::Stop ()
 SNMP stack 을 종료한다.
bool CSnmpStack::SendRequest (const char *pszIp, int iPort, CSnmpMessage *pclsRequest)
 SNMP 요청 메시지를 전송한다.
bool CSnmpStack::SendRequest (CSnmpMessage *pclsRequest)
 SNMP 요청 메시지를 전송한다.
uint32_t CSnmpStack::GetNextRequestId ()
 SNMP request ID 를 리턴한다.
void CSnmpStack::SetRequestId (uint32_t iRequestId)
 SNMP request ID 를 설정한다.
bool CSnmpTransaction::IsTimeout (struct timeval *psttTime, int iTimeout)
 timeout 되었는지 검사한다.
void CSnmpTransactionList::SetSnmpStack (CSnmpStack *pclsStack)
 CSnmpStack 객체를 저장한다.
bool CSnmpTransactionList::Insert (CSnmpMessage *pclsRequest)
 transaction list 에 SNMP 메시지를 저장한다.
bool CSnmpTransactionList::Delete (CSnmpMessage *pclsRequest)
 SNMP 메시지에 대한 transaction 을 삭제한다.
bool CSnmpTransactionList::Select (uint32_t iRequestId, CSnmpTransaction **ppclsTransaction)
 SNMP request ID 로 transaction 을 검색한다.
bool CSnmpTransactionList::Delete (uint32_t iRequestId)
 SNMP request ID 인 transaction 을 삭제한다.
void CSnmpTransactionList::Release (CSnmpTransaction *pclsTransaction)
 transaction 사용 개수를 1 감소 시킨다.
void CSnmpTransactionList::Execute (struct timeval *psttTime)
 timeout 된 transaction 에 대한 재전송 기능을 수행한다.
void CSnmpTransactionList::DeleteAll ()
 모든 transaction 을 삭제한다.

상세한 설명

SNMP 메시지 전송/수신 라이브러리

함수 문서화

bool CSnmpSession::Check ( )

세션이 유효한지 검사한다.

반환값
세션이 유효하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
void CSnmpAgent::Close ( )

SNMP 패킷 수신을 위한 UDP 포트를 닫는다.

void CSnmpSession::Close ( )

SNMP 통신을 위한 UDP 소켓을 종료한다.

bool CSnmpTransactionList::Delete ( CSnmpMessage pclsRequest)

SNMP 메시지에 대한 transaction 을 삭제한다.

매개변수
pclsRequestSNMP 메시지
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSnmpTransactionList::Delete ( uint32_t  iRequestId)

SNMP request ID 인 transaction 을 삭제한다.

매개변수
iRequestIdSNMP request ID
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
void CSnmpTransactionList::DeleteAll ( )

모든 transaction 을 삭제한다.

void CSnmpTransactionList::Execute ( struct timeval *  psttTime)

timeout 된 transaction 에 대한 재전송 기능을 수행한다.

매개변수
psttTime현재 시간
const char * CSnmpSession::GetIp ( )

destination IP 주소를 리턴한다.

반환값
destination IP 주소를 리턴한다.
uint32_t CSnmpStack::GetNextRequestId ( )

SNMP request ID 를 리턴한다.

반환값
SNMP request ID 를 리턴한다.
bool CSnmpTransactionList::Insert ( CSnmpMessage pclsRequest)

transaction list 에 SNMP 메시지를 저장한다.

매개변수
pclsRequestSNMP 요청 메시지
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool IsSnmpStackThreadRun ( )

SNMP stack 쓰레드가 실행 중인지 검사한다.

반환값
SNMP stack 쓰레드가 실행 중이면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool IsSnmpUdpThreadRun ( )

SNMP 메시지 수신 쓰레드가 실행 중인지 검사한다.

반환값
SNMP 메시지 수신 쓰레드가 실행 중이면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSnmpTransaction::IsTimeout ( struct timeval *  psttTime,
int  iTimeout 
)

timeout 되었는지 검사한다.

매개변수
psttTime현재 시간
iTimeouttimeout milisecond
반환값
timeout 되었으면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
void LogPacket ( const char *  pszPacket,
int  iPacketLen 
)

패킷을 HEX 문자열로 로그에 출력한다.

매개변수
pszPacket패킷
iPacketLen패킷 길이
bool CSnmpAgent::Open ( int  iUdpPort,
const char *  pszCommunity,
const char *  pszUserName,
const char *  pszAuthPassWord,
const char *  pszPrivPassWord 
)

SNMP 패킷 수신을 위한 UDP 포트를 연다.

매개변수
iUdpPortSNMP 패킷 수신을 위한 UDP 포트 번호
pszCommunitySNMPv2 community 문자열
pszUserNameSNMPv3 사용자 아이디
pszAuthPassWordSNMPv3 인증 비밀번호
pszPrivPassWordSNMPv3 암호화 비밀번호
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSnmpSession::Open ( )

SNMP 통신을 위한 UDP 소켓을 생성한다.

반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSnmpAgent::RecvRequest ( CSnmpMessage pclsRequest,
int  iTimeout 
)

SNMP 요청 메시지 수신 대기 & 수신한다.

매개변수
pclsRequest수신된 SNMP 요청 메시지를 저장할 변수
iTimeout대기 시간 ( ms 단위 )
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
virtual void ISnmpStackCallBack::RecvResponse ( CSnmpMessage pclsRequest,
CSnmpMessage pclsResponse 
)
pure virtual

SNMP 응답 메시지 수신 이벤트 callback.

매개변수
pclsRequestSNMP 요청 메시지
pclsResponseSNMP 응답 메시지. SNMP 응답 메시지가 NULL 이면 timeout 된 것이다.
void CSnmpTransactionList::Release ( CSnmpTransaction pclsTransaction)

transaction 사용 개수를 1 감소 시킨다.

transaction 사용 개수가 0 이면 transaction 을 자료구조에서 삭제한다.

매개변수
pclsTransactiontransaction 객체
bool CSnmpTransactionList::Select ( uint32_t  iRequestId,
CSnmpTransaction **  ppclsTransaction 
)

SNMP request ID 로 transaction 을 검색한다.

매개변수
iRequestIdSNMP request ID
ppclsTransactionSNMP transaction 객체 저장 변수
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSnmpSession::SendGetNextRequest ( const char *  pszOid,
std::string **  ppstrResponseOid,
CAsnType **  ppclsAsnType 
)

SNMP GET NEXT 메시지를 전송하여서 이에 대한 응답을 수신한다.

매개변수
pszOidMIB
ppstrResponseOid응답 메시지의 OID 저장 변수
ppclsAsnType응답 메시지의 ASN 타입 저장 변수
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSnmpSession::SendGetNextRequest ( const char *  pszOid,
std::string **  ppstrResponseOid,
std::string &  strValue 
)

SNMP GET NEXT 메시지를 전송하여서 이에 대한 응답을 수신한다.

매개변수
pszOidMIB
ppstrResponseOid응답 메시지의 OID 저장 변수
strValue응답 값 저장 변수
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSnmpSession::SendGetNextRequest ( const char *  pszOid,
std::string **  ppstrResponseOid,
uint32_t &  iValue 
)

SNMP GET NEXT 메시지를 전송하여서 이에 대한 응답을 수신한다.

매개변수
pszOidMIB
ppstrResponseOid응답 메시지의 OID 저장 변수
iValue응답 값 저장 변수
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSnmpSession::SendGetRequest ( const char *  pszOid,
CAsnType **  ppclsAsnType 
)

SNMP GET 메시지를 전송하여서 이에 대한 응답을 수신한다.

매개변수
pszOidMIB
ppclsAsnType응답 메시지의 ASN 타입 저장 변수
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSnmpSession::SendGetRequest ( const char *  pszOid,
std::string &  strValue 
)

SNMP GET 메시지를 전송하여서 이에 대한 응답을 수신한다.

매개변수
pszOidMIB
strValue응답 값 저장 변수
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSnmpSession::SendGetRequest ( const char *  pszOid,
uint32_t &  iValue 
)

SNMP GET 메시지를 전송하여서 이에 대한 응답을 수신한다.

매개변수
pszOidMIB
iValue응답 값 저장 변수
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSnmpStack::SendRequest ( const char *  pszIp,
int  iPort,
CSnmpMessage pclsRequest 
)

SNMP 요청 메시지를 전송한다.

매개변수
pszIp목적지 IP 주소
iPort목적지 포트 번호
pclsRequestSNMP 요청 메시지
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSnmpStack::SendRequest ( CSnmpMessage pclsRequest)

SNMP 요청 메시지를 전송한다.

매개변수
pclsRequestSNMP 요청 메시지
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSnmpSession::SendRequest ( CSnmpMessage pclsRequest,
CSnmpMessage pclsResponse 
)

SNMPv2 이면 SNMP 요청 메시지를 전송한 후, 이에 대한 응답 메시지를 수신한다.

                    SNMPv3 이면 SNMP 요청 메시지를 전송한 후, 이에 대한 응답 메시지 수신후, 다시 SNMP 요청 메시지를 전송한 후, 이에 대한 응답 메시지를 수신한다.
매개변수
pclsRequestSNMP 요청 메시지
pclsResponseSNMP 응답 메시지
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSnmpSession::SendRequest ( CSnmpMessage pclsRequest)

SNMP trap 과 같은 단방향 SNMP 메시지를 전송한다.

매개변수
pclsRequestSNMP 메시지
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool CSnmpAgent::SendResponse ( CSnmpMessage pclsResponse)

SNMP 응답 메시지를 전송한다.

매개변수
pclsResponseSNMP 응답 메시지
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
void CSnmpSession::SetDebug ( bool  bDebug)

SNMP 통신 디버그 모드를 설정한다.

매개변수
bDebug디버그 모드
bool CSnmpSession::SetDestination ( const char *  pszIp,
int  iPort = 161,
bool  bTcp = false,
bool  bTrapOnly = false 
)

SNMP 요청 메시지를 전송할 SNMP Agent 주소를 설정한다.

매개변수
pszIpIP 주소
iPort포트 번호
bTcpTCP 사용 유무
bTrapOnlyTRAP 메시지만 전송하는가?
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
void CSnmpStack::SetRequestId ( uint32_t  iRequestId)

SNMP request ID 를 설정한다.

매개변수
iRequestIdSNMP request ID
bool CSnmpSession::SetReSendCount ( int  iReSendCount)

timeout 되었을 때에 재전송하는 개수를 설정한다.

매개변수
iReSendCounttimeout 되었을 때에 재전송하는 개수
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
void CSnmpTransactionList::SetSnmpStack ( CSnmpStack pclsStack)

CSnmpStack 객체를 저장한다.

재전송 등의 기능을 위해서 CSnmpStack 객체가 필요하다.

매개변수
pclsStackCSnmpStack 객체
bool CSnmpSession::SetSnmpv2 ( const char *  pszCommunity)

SNMPv2 를 위한 SNMP community 문자열을 설정한다.

매개변수
pszCommunitySNMP community 문자열
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSnmpSession::SetSnmpv3 ( const char *  pszUserName,
const char *  pszAuthPassWord,
const char *  pszPrivPassWord,
const char *  pszAuthEngineId = NULL 
)

SNMPv3 를 위한 사용자 아이디 및 비밀번호를 설정한다.

매개변수
pszUserName사용자 아이디
pszAuthPassWord인증 비밀번호
pszPrivPassWord암호화 비밀번호
pszAuthEngineId인증 아이디 ( SNMP TRAP 전송시에 입력한다. )
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSnmpSession::SetTimeout ( int  iMiliSecond)

재전송을 위한 수신 대기 timeout 시간을 설정한다.

매개변수
iMiliSecondmilisecond timeout 시간
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
THREAD_API SnmpSessionThread ( LPVOID  lpParameter)
매개변수
lpParameter
반환값
THREAD_API SnmpStackThread ( LPVOID  lpParameter)

SNMP stack 쓰레드

매개변수
lpParameterCSnmpStack 객체
반환값
0 을 리턴한다.
THREAD_API SnmpTcpAgentClientThread ( LPVOID  lpParameter)

TCP 기반 SNMP 메시지 수신 쓰레드

매개변수
lpParameterCSnmpTcpAgentClientArg 객체의 포인터
반환값
0 을 리턴한다.
THREAD_API SnmpTcpAgentListenThread ( LPVOID  lpParameter)

SNMP 클라이언트의 TCP 연결 처리 쓰레드

매개변수
lpParameterCSnmpTcpAgent 객체
반환값
0 을 리턴한다.
THREAD_API SnmpUdpThread ( LPVOID  lpParameter)

SNMP 메시지 수신 쓰레드

매개변수
lpParameterSNMP stack 객체
반환값
0 을 리턴한다.
bool CSnmpStack::Start ( CSnmpStackSetup clsSetup,
ISnmpStackCallBack pclsCallBack 
)

SNMP stack 을 시작한다.

매개변수
clsSetup설정 객체
pclsCallBackcallback 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool StartSnmpStackThread ( CSnmpStack pclsSnmpStack)

SNMP stack 쓰레드를 시작한다.

매개변수
pclsSnmpStackCSnmpStack 객체
반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
bool StartSnmpUdpThread ( CSnmpStack pclsSnmpStack)

SNMP 메시지 수신 쓰레드를 시작한다.

매개변수
pclsSnmpStackSNMP stack 객체
반환값
성공하면 true 를 리턴하고 그렇지 않으면 false 를 리턴한다.
bool CSnmpStack::Stop ( )

SNMP stack 을 종료한다.

반환값
성공하면 true 를 리턴하고 실패하면 false 를 리턴한다.
void StopSnmpStackThread ( )

SNMP stack 쓰레드를 종료한다.

void StopSnmpUdpThread ( )

SNMP 메시지 수신 쓰레드를 중지한다.