标签: pcap4j

仅捕获 arp-reply 数据包的 BPF 表达式

是否有一个BPF表达式只能捕获 arp-reply 数据包?目前,我正在使用 Pcap4J 和以下 BPF 表达式:

arp 和 dst 主机主机和以太网 dst mac

其中host是我的设备的 IP 地址,mac是我的主网络接口的 MAC 地址。不幸的是,当捕获数据包时,该过滤器也允许捕获 ARP 广播请求,因此我必须采取额外的步骤来检查 ARP 标头的操作字段是否为 2 而不是 1。

java packet-capture arp bpf pcap4j

6
推荐指数
1
解决办法
2725
查看次数

使用 pcap4j 读取数据包内容

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

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) {
                // …
Run Code Online (Sandbox Code Playgroud)

java sniffer wireshark packet-sniffers pcap4j

5
推荐指数
1
解决办法
891
查看次数

如何在pcap4j中捕获域?

我正在一个Java(Android)项目中工作,主要思想是捕获url并阻止对危险页面的访问,因此为了获取用户访问的url,我正在使用pcap4j库如下:

IpV4Packet ipV4Packet = packet.get (IpV4Packet.class);
Inet4Address srcAddr = ipV4Packet.getHeader().GetSrcAddr();
System.out.println(srcAddr);
Run Code Online (Sandbox Code Playgroud)

因此,如果我访问网址(https://es.wikipedia.org/wiki/Google),代码将生成域名,类似于:(wikipedia.org),但我真正需要的是生成的主网址请求,如何获取完整的 URL ( https://es.wikipedia.org/wiki/Google )?

java url android pcap4j

4
推荐指数
1
解决办法
795
查看次数

标签 统计

java ×3

pcap4j ×3

android ×1

arp ×1

bpf ×1

packet-capture ×1

packet-sniffers ×1

sniffer ×1

url ×1

wireshark ×1