net-snmp과 함께 다양한 MIBS 목록을 표시하고 SNMP 트리 구조와 관련된 다른 정보를 표시하려고합니다.C/C++에서 net-snmp MIB API를 사용하여 SMIv1 MIBS를 나열하는 방법은 무엇입니까?
이제 내 고객의 SMIv1 MIBS가 목록에 표시되지 않지만 net-snmp에 의해 올바르게로드 된 것으로 나타났습니다.
샘플 net-snmp 코드는 메모리의 MIB 구조를 통과하며 트리의 MIB와 MODULE-IDENTITY 메모 사이에 SMIv2 양립성이 있다고 가정합니다. 따라서 MODULE-IDENTITY 노드를 발견하면 MIB를 찾습니다.
누구도 정확한 방법이 무엇인지 알고 있습니까 net-snmp으로 SMIv1 MIBS를 나열 하시겠습니까? (? 또는 해결 방법)
// Read mibs and obtain memory structures
struct tree * head = read_all_mibs();
// Walk down the SNMP tree
for (struct tree * tp = head; tp; tp = tp->next_peer)
{
// Module-indentity
if (tp->type == TYPE_MODID)
{
// XXX We found a SMIv2 MIB, but SMIv1 MIBs have no MODULE-IDENTITY node
}
}
NB : 나는 smidump (명령 행 도구 또는 http://www.ibr.cs.tu-bs.de/projects/libsmi/tools/에서 웹 서비스로) 변환기를 발견하지만 MIB에 대한 MODULE-IDENTITY 노드를 추가하지 않습니다 .
편집 : 이전 SNMP MIB를 최신 SNMP MIB (SMIv2 스타일)로 변환하는 도구는 문제를 해결할 수 있습니다. 그 특정한 방향의 어떤 도움?
한 가지 제안은 MIB (이 작동하지 않을 수 있도록 때로는 MIB는 많은 다른과 관련이없는 장소에서 노드를 추가합니다)의 루트 객체 식별자를 찾기 위해, 모듈 식별자의 부재에, 수 있습니다. 루트 노드를 사용하면 해당 MIB와 관련된 대부분의 트리를 표시 할 수 있습니다.
감사 모듈 정체성 노드를 보여줍니다하지만이 역시 오프 주제 . 실제로 C/C++에서 net-snmp API를 사용하여 MIB를로드하고 있습니다. –