2014-10-08 103 views
-1

我是新來的SNMP協議。我想知道snmpd如何處理SNMP請求。例如:snmpd如何處理SNMP請求?

snmpget -v1 -c public localhost sysName 

我的理解是它正在實施MIBs, SNMPv2-MIB,但正在執行uname -n命令?

+1

請嘗試通過點擊編輯鏈接來澄清您的問題。 – bowlturner 2014-10-08 19:13:30

+0

@ ashutosh-kumar請問下面的回答是否有幫助,或者您是否需要更多信息? – k1eran 2014-12-22 17:49:27

回答

0

爲使用sysname OID的NET-SNMP SNMPD映射看到system_mib.c它是有時確實基於uname,請參見下面的代碼片段:

#ifdef HAVE_GETHOSTNAME 
    gethostname(sysName, sizeof(sysName)); 
#else 
#ifdef HAVE_UNAME 
    strlcpy(sysName, utsName.nodename, sizeof(sysName)); 
#else 
#if defined (HAVE_EXECV) && !defined (mingw32) 
    sprintf(extmp.command, "%s -n", UNAMEPROG); 
    /* 
    * setup defaults 
    */ 
    extmp.type = EXECPROC; 
    extmp.next = NULL; 
    exec_command(&extmp); 
    strlcpy(sysName, extmp.output, sizeof(sysName)); 
    if (strlen(sysName) >= 1) 
     sysName[strlen(sysName) - 1] = 0; /* chomp new line */ 
#else 
    strcpy(sysName, "unknown"); 
#endif /* HAVE_EXECV */ 
#endif /* HAVE_UNAME */ 
#endif /* HAVE_GETHOSTNAME */ 

要了解如何snmpdagent architecture頁內部工作原理的外觀在net-snmp網站上。 它是詳細的,也解釋瞭如何用新的MIB擴展net-snmp。