0
캡쳐 된 패킷을 Jpcap Library를 사용하여 Java에서 캡쳐 된 패킷을 분석하고 있습니다. 그러나 캡쳐 된 패킷은 ARPPacket입니다. 다음 프로그램에서 다음과 같은 오류가 발생합니다. 스레드에서jpcap을 사용하여 수신 된 패킷이 Java에서 IPPacket 또는 ARPPacket인지 식별하는 방법은 무엇입니까?
인용문
예외는 "주"java.lang.ClassCastException가이 : jpcap.packet.ARPPacket는 jpcap.packet.IPPacket으로 캐스팅 할 수 없습니다.
인용문
그래서 난 수신 된 패킷이 IPPacket 또는 ARPPacket 여부를 확인하는 방법에 대해 설명합니다. 코드의 핵심 개념은 여기에 있습니다 :
import jpcap.*;
import jpcap.packet.IPPacket;
import jpcap.packet.Packet;
public class Capture {
public static void main(String[] args) throws IOException {
NetworkInterface[] device=JpcapCaptor.getDeviceList();
Packet packet;
JpcapCaptor captor=JpcapCaptor.openDevice(device[0], 65535, true, 20);
for(;;){
packet=captor.getPacket();
IPPacket p=(IPPacket)packet;
if(p!=null)
System.out.println("protocol id is"+p.protocol);
}
}
}
이 어떻게 내가이 error.thank 당신을 극복했다.