【问题标题】:Packet sniffering by jpcapjpcap 的数据包嗅探
【发布时间】:2013-04-25 05:25:25
【问题描述】:

我在 jpcap 库的帮助下在 java 中的以太网 (eth0) 上嗅探数据包...所以,在我的项目中,我有一个 JpcapCaptor ...

    //Open an interface with openDevice(NetworkInterface intrface, int snaplen, boolean promics, int to_ms)
        JpcapCaptor captor=JpcapCaptor.openDevice(devices[index], 65535, false, 20);
        captor.setFilter("icmp", true);
        captor.loopPacket(-1, new PacketPrinter()); 

然后我有数据包打印机,它打印嗅探数据包的主体......

    public class PacketPrinter implements PacketReceiver {
@Override
public void receivePacket(Packet packet) {
    InputStream is = new ByteArrayInputStream(packet.data);
    try {
        String sstr = IOUtils.toString(is, "UTF-8");
        System.out.println("STRING " + sstr);
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
       String ss;
    try {
        ss = new String(packet.data, "UTF-8");
        System.out.println("STRING " + ss);
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
} 

但是有一个问题... packet.data 是一个字节[]... 而控制台将其打印为

    STRING W�xQ��       !"#$%&'()*+,-./01234567
    STRING W�xQ��       !"#$%&'()*+,-./01234567
    STRING W�xQ��       !"#$%&'()*+,-./01234567 

据我了解是因为编码问题???决定这个问题的解决方案是什么?

【问题讨论】:

  • 这是一个编码问题,但可能不是您想的那样。这基本上表明,无论是渲染文本,都没有字符的表示。就您的代码而言,我认为没有错。你从哪里显示这个?你试过没有指定编码吗?
  • 是的,我已经尝试过了......我已经开始寻找编码解决方案,就在这个问题出现后没有编码......(((我在 Eclipse 的控制台或 Ubuntu 的终端中显示它。 ..
  • 那么您的平台上的字符集中根本没有人类可读的字符来显示这些文本位

标签: java libpcap tcpdump packet-sniffers jpcap


【解决方案1】:

据我了解是因为编码问题?

这可能是正确的。也可能是您尝试转换为字符串的内容根本不是文本。事实上,如果这是您嗅探的原始网络数据包,则几乎保证某些数据包(IP/ICMP 数据包标头)不会是文本。

这个问题的解决方法是什么?

解决方案是了解您要解码的是什么,以及是否适合将其解码为就像它是编码文本一样。如果没有,您需要以不同的方式解码/显示它......取决于相关 RFC 关于您尝试显示的数据包的说明。

【讨论】:

  • Jpcap 与 -ngrep -W byline 或 tcpdump 或 smth 做同样的事情......所以这些嗅探器向我们展示了带有文件的数据包主体: from:...to:... 等等.
  • 是的……大概这些字段实际上是二进制数据,而不是文本。如果是这种情况,那么尝试将它们视为(编码)文本将会产生您在此处看到的那种垃圾。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 2015-04-02
  • 2012-01-08
  • 2013-04-14
  • 1970-01-01
相关资源
最近更新 更多