代码之家  ›  专栏  ›  技术社区  ›  rogeriopvl

使PHP站点向网络管理应用程序发送SNMP信息

  •  8
  • rogeriopvl  · 技术社区  · 15 年前

    我试图让一个PHP网站通过SNMP发送信息。我一直在阅读关于snmp的allot,但是我仍然对从哪里开始有点摸不着头脑。

    我相信我需要用我的网站发送信息时使用的所有OID创建一个MIB。这是正确的吗?我如何在哪里定义这些变量(OID)?有人能给我指个方向吗?

    我在服务器上使用freebsd。

    事先谢谢。

    3 回复  |  直到 12 年前
        1
  •  4
  •   Ted    15 年前

    您要做的是发送一个“snmp陷阱”。您不必定义MIB。MIB只是将“半人友好”的名称转换为一个OID,例如snmpv2 mib::syscontact.0到.1.3.6.1.2.1.1.4.0。对于私有应用程序,理论上可以使用任何您想要的OID,就像理论上可以使用任何您想要的IP地址用于没有连接到其他人的私有网络一样。我不确定是否有首选的“私有”OID分支。有一些很好的信息可以让你开始 http://www.paessler.com/support/kb/questions/49/ . 虽然看起来PHP不直接支持发送SNMP陷阱,但是您可以调用“snmptrap”命令。

        2
  •  1
  •   Simon Groenewolt    15 年前

    有几个问题:

    • 要获得自己的顶级标识符,我认为您实际上必须在某个地方请求它(并且可能需要付费?)但是有一个实验范围可以用来测试。(这不是PHP问题,而是SNMP问题/功能)

    • 据我所知,协议假定一个进程在一个完全不同于HTTP端口的端口上侦听,并且也不使用TCP,而是使用UDP。只是用通常的方法创建一个PHP页面是行不通的。

    一个可能的解决方案可能是在Apache(或您使用的任何Web服务器)中使用一个允许您用PHP编程响应逻辑的SNMP模块。我的感觉是,您在Web上遇到的大多数snmp php内容不是关于代理部分,而是关于管理器部分。

        3
  •  0
  •   Mauro Destro    15 年前

    我知道,SNMP是一种协议,主机向设备发送特定OID值的请求,然后接收响应。

    我不确定您是否可以有一个PHP网站来回答这些数据包。

    我找到的唯一信息是PHP有一个snmp客户机类 PHP SNMP

    维基百科提供了关于snmp的详细信息 link text

    但我仍然确信一个网站不能充当SNMP服务器。