【问题标题】:Setting Peer Address with SNMP4J使用 SNMP4J 设置对等地址
【发布时间】:2012-10-30 15:55:14
【问题描述】:

我正在尝试使用 SNMP4J 模拟几个虚拟 SNMP 设备。因此,在发送陷阱时,我试图修改源设备的 IP 地址,但我不确定如何。我知道有一个 setPeerAddress() 方法,但它似乎不起作用。事实上,我什至不确定 SNMP4J 是否可能或支持它。

或者,是否可以使用 Java 虚拟地进行 IP 地址欺骗和 IP 地址?

提前感谢您的所有帮助。

【问题讨论】:

    标签: java ip spoofing snmp4j snmp-trap


    【解决方案1】:

    我几乎 100% 确信 Java 不会允许您伪造 IP 数据包的发件人地址。

    根据操作系统允许的情况,可以使用对 JNI 方法的调用来执行此操作。例如,在 Windows 上运行时,我已经在 J​​Pcap 库中看到过它。

    (不是在http://jpcap.sourceforge.net/ 托管的流行 jpcap,而是之前托管在 http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/index.html 。我刚刚注意到它似乎已经从网络上消失了。)

    编辑:关于 SNMP4j 的 API,我只能在 CommandResponderEvent 和 ResponseEvent 类中找到 setPeerAddress() 方法。这两个似乎都代表传入数据(对您发送的请求的响应),因此尝试以这种方式更改发件人地址对您没有用处。

    【讨论】:

      【解决方案2】:

      在转发/发送之前,将 IP 地址 varbind 添加到陷阱 PDU,而不是欺骗。

      String ip_addr = cmdRespEvent.getPeerAddress().toString().split("/")[0];
      
      pdu.add(new VariableBinding(SnmpConstants.snmpTrapAddress,
                          new IpAddress(ip_addr)));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-15
        • 2013-08-08
        • 1970-01-01
        • 1970-01-01
        • 2020-01-30
        • 1970-01-01
        相关资源
        最近更新 更多