ethernetPacket всегда возвращает ноль - PullRequest
0 голосов
/ 11 января 2020

Я пытаюсь получить MA C и IP-адреса пакета и отобразить их, проблема в том, что ethernetPacket всегда нулевой, поэтому другие значения не получаются. У вас есть идеи, в чем может быть проблема?

        // select the interface
        PcapNetworkInterface device = getNetworkDevice();
        System.out.println("Your Device is: " + device);

        int snapshotLength = 65536; // in bytes
        int readTimeout = 50; // in milliseconds
        final PcapHandle handle;
        handle = device.openLive(snapshotLength, PromiscuousMode.PROMISCUOUS, readTimeout);
        handle.setBlockingMode(PcapHandle.BlockingMode.BLOCKING);

        PacketListener listener = packet -> {
                  System.out.println(packet);
                  EthernetPacket ethernetPacket = packet.get(EthernetPacket.class);
                  System.out.println(ethernetPacket); // prints null
                  System.out.println("Src Mac Address is: "+ethernetPacket.getHeader().getSrcAddr());
                  System.out.println("Dst Mac Address is: "+ethernetPacket.getHeader().getDstAddr());
                  IpV4Packet ipV4Packet = packet.get(IpV4Packet.class);
                  System.out.println("Src IP address is: "+ ipV4Packet.getHeader().getSrcAddr());
                  System.out.println("Dst IP address is: "+ ipV4Packet.getHeader().getDstAddr());
            };
        try {
            int maxPackets = -1;
            handle.loop(maxPackets, listener);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        handle.close();
...