개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.18 08:14

SNMP::get 관련 질문

목록
  • UI디자이너 1일 전 2025.05.18 08:14
  • 8
    1
제가 SNMP::get 메서드를 사용하여 SNMP 오브젝트의 값을 가져오려고 하는데, 오류가 발생합니다. 오류 메시지는 다음과 같습니다.

"SNMP::get: Invalid object identifier"

제가 사용한 코드는 다음과 같습니다.

perl

use Net::SNMP;



my $session = Net::SNMP->session(

    -hostname  => '192.168.1.1',

    -community => 'public',

    -version   => 'snmpv2c',

);



my $result = $session->get_request(

    -varbindlist => [ 'sysDescr.0' ],

);



if ( defined $result ) {

    print "sysDescr.0: ", $result->{sysDescr.0}, "n";

} else {

    print "SNMP::get: ", $session->error, "n";

}



제가 사용한 오브젝트 식별자 'sysDescr.0'은 올바른지 확인했습니다. 오브젝트 식별자가 잘못된 것일까요? 오브젝트 식별자를 올바르게 사용하는 방법을 알려주시겠습니까?

    댓글목록

    profile_image
    나우호스팅  1일 전



    SNMP 오브젝트 식별자는 일반적으로 .으로 구분된 문자열로 구성됩니다. 예를 들어, sysDescr.0은 시스템 설명을 나타내는 오브젝트 식별자입니다.

    오브젝트 식별자가 잘못된 것은 아닙니다. 그러나, Net::SNMP 모듈은 오브젝트 식별자를 자동으로 완성하지 않습니다. 따라서, 오브젝트 식별자가 완전한 OID(객체 식별자)인지 확인해야 합니다.

    sysDescr.0은 완전한 OID가 아닙니다. 완전한 OID는 1.3.6.1.2.1.1.1.0으로 구성됩니다.

    완전한 OID를 사용하여 SNMP::get 메서드를 호출하십시오.

    #hostingforum.kr
    perl
    
    use Net::SNMP;
    
    
    
    my $session = Net::SNMP->session(
    
        -hostname  => '192.168.1.1',
    
        -community => 'public',
    
        -version   => 'snmpv2c',
    
    );
    
    
    
    my $result = $session->get_request(
    
        -varbindlist => [ '1.3.6.1.2.1.1.1.0' ],
    
    );
    
    
    
    if (defined $result) {
    
        print "sysDescr.0: ", $result->{1.3.6.1.2.1.1.1.0}, "n";
    
    } else {
    
        print "SNMP::get: ", $session->error, "n";
    
    }
    
    


    이 코드를 사용하여 완전한 OID를 사용하여 SNMP::get 메서드를 호출할 수 있습니다.

    2025-05-18 08:15

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 20,751건 / 29 페이지

검색

게시물 검색