2014-10-08 106 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。