【发布时间】:2014-10-15 11:58:37
【问题描述】:
我正在捕获 IPPackets 并使用 Jpcap 库在 java 中分析捕获的数据包。但是捕获的数据包是 ARPPacket 我的程序显示以下错误。
块引用
线程“main”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);
}
}
}
我怎样才能克服这个错误。谢谢。
【问题讨论】:
标签: java network-programming packet-capture packet-sniffers jpcap