Pcap数据包的编码和解码

时间:2014-10-30 12:53:03

标签: java pcap encoder decoder jnetpcap

我需要将数据包转换为字节格式并对其进行解码。如何将使用jnetpcap库捕获的数据包转换为数组[bytes],反之亦然?

1 个答案:

答案 0 :(得分:0)

PcapPacket类有方法 public int transferStateAndDataTo(byte [] buffer),它将数据包的内容复制到字节数组 将byte []的大小定义为packet.getTotalSize()

如果您正在寻找有效载荷

//opens an offline pcap file 
Pcap pcap = Pcap.openOffline(pcapIpFile, errbuf); 

//packet object
PcapPacket packet = new PcapPacket(JMemory.POINTER); 

Payload pl = new Payload();

pcap.nextEx(packet);       // retrieves the next packet from input loop thru until eof

if(packet.hasHeader(pl))  //this will check for and retrieve the payload
    pl.data()   // this will give you the data in the payload as a byte stream 

对于不同标头中的数据(ethernet / ip / tcp),实现中还有其他可用的方法