【问题标题】:Network discovery using broadcast snmp requests使用广播 snmp 请求的网络发现
【发布时间】:2014-09-17 15:25:07
【问题描述】:

我想发现我的子网中的打印机。我可以使用以下链接中提到的 net-snmp 来做到这一点吗? https://sourceforge.net/p/net-snmp/bugs/2336/

但它似乎不起作用?我是否应该在 snmp_api 中启用任何广播标志来做到这一点。另外我将如何处理响应?你能在这个简单的应用程序的上下文中解释我吗? http://www.net-snmp.org/wiki/index.php/TUT:Simple_Application

我是 SNMP 新手。非常感谢任何帮助。

PS:我使用的是 net-snmp 5.7.2.1

【问题讨论】:

  • 请澄清“您尝试了什么”的问题。另外,当您尝试时,您收到的输出是什么?您可以尝试使用命令行工具snmpget 发出相同的请求,以排除您的编程错误。
  • 我也试过命令行。当我向广播地址发送“snmpget”请求时出现超时。
  • 尝试将您的 PC 与打印机放在同一个子网中。它开始工作了吗?然后你有一个路由问题。询问您的本地网络管理员对您网络中的广播数据包有哪些限制。出于安全原因,大多数路由器会丢弃来自外部的广播数据包。您的管理员或许可以为您的管理站设置例外。
  • 我想这是可行的。所以现在我正在尝试 ping 我的计算机所在子网的广播地址。我没有得到“超时”。虽然我收到了“snmpget”的错误,而“snmpwalk”没有响应。我收到了“snmpgetnext”的响应,当我一次又一次地执行命令时,它会不断变化。我假设它正在遍历从子网中所有打印机获得的响应?!?!从一个文件中获取所有打印机的所有响应的正确方法是什么?
  • 你不应该期望 snmpwalk 或 snmp-get-next 在广播中是可行的,因为每个响应主机都有自己单独的 OID 排序。语义没有定义(正如 Lex Li 在他的回答中所写)。您应该能够获得对简单 get 请求的响应,但就像 Lex 所写的那样,您最好确保所有打印机都使用相同的社区字符串。

标签: networking snmp broadcast net-snmp


【解决方案1】:

您需要了解 SNMP 不是定义了设备发现的协议,

https://sharpsnmplib.codeplex.com/wikipage?title=SNMP%20Device%20Discovery&referringTitle=Documentation

只有当该设备碰巧使用您使用的社区名称(对于 v1 和 v2c)时,您的广播消息才可能收到响应。

不要依赖广播,出于安全考虑,许多设备使用非常特殊的社区名称,它们不会响应。

【讨论】:

    【解决方案2】:

    // 如果 sysservice 值为 72,则识别打印机,否则为 72 打印机

    public void getDiscover(String oid_index){
        tempOID = "1.3.6.1.2.1.1.7";
    
        try{
        while(tempOID.equalsIgnoreCase("1.3.6.1.2.1.1.7")){
            //System.out.println("tttt");
        pair  = (SNMPSequence)(new SNMPRequest(community, tempOID, **"IP"**, version)).getRequest(2).getSNMPObjectAt(0);
        //mpValue = pair.getSNMPObjectAt(1);
        oid_index = pair.getSNMPObjectAt(0).toString();
      //tempOID = pair.getSNMPObjectAt(0).toString().substring(0,10);
        index.addElement(snmpValue);
        System.out.println(snmpValue.toString());// sysservice value
        }
    

    【讨论】:

      猜你喜欢
      • 2014-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      • 2015-10-04
      • 1970-01-01
      • 2013-06-13
      • 1970-01-01
      相关资源
      最近更新 更多