Я пытаюсь получить 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();