首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pcap4j读取数据包内容

使用pcap4j读取数据包内容
EN

Stack Overflow用户
提问于 2020-07-19 03:35:18
回答 1查看 1.6K关注 0票数 6

我有下面的代码,它可以使用pcap4j从接口捕获数据包,但我不确定如何打印请求和数据包中的响应数据。例如,如果我从邮递员那里打了一个REST电话,那么我想要跟踪请求和响应。这和Wireshark一样。我被困在最后一部分,我能够捕获包,但不确定如何读取包内容,我可以打印在控制台上。

代码语言:javascript
复制
try {
        
        InetAddress addr = InetAddress.getByName("10.227.178.25");
        PcapNetworkInterface device = Pcaps.getDevByAddress(addr);
        
        System.out.println("You chose: " + device);
        
        int snapshotLength = 64 * 1024; // in bytes   
        int readTimeout = 50; // in milliseconds                   
        final PcapHandle handle;
        handle = device.openLive(snapshotLength, PromiscuousMode.PROMISCUOUS, readTimeout);
        String filter = "tcp port 80";
        handle.setFilter(filter, BpfCompileMode.OPTIMIZE);
        // Create a listener that defines what to do with the received packets
        PacketListener listener = new PacketListener() {
            @Override
            public void gotPacket(Packet packet) {
                // Override the default gotPacket() function and process packet
                System.out.println(handle.getTimestamp());
                System.out.println(packet);
                byte[] b = packet.getRawData();
                Packet p = packet.getPayload();
               
                
            }
        };

        // Tell the handle to loop using the listener we created
        try {
            int maxPackets = 50;
            handle.loop(maxPackets, listener);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        // Cleanup when complete
        handle.close();
        
    }catch(Exception e) {
        e.printStackTrace();
    }

所以我有两个问题:

  1. 如何捕获
  2. 请求和响应,并将其打印在控制台上。
  3. ,如何让java代码连续运行,以便它继续捕获数据包。

我确实检查了pcap4j文档,但不确定如何读取数据包内容,以便读取HTTP和HTTP。

EN

回答 1

Stack Overflow用户

发布于 2021-12-29 01:10:30

关于第一个问题:

如果将maxPackets设置为-1,它将持续运行。您可以从官方示例中看到许多这样的实现。

至于第二个问题:

目前,官方库不支持Http数据包。您需要自己手动实现它。您可以检查https://github.com/kaitoy/pcap4j/issues/85.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62975959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档