我需要将数据包转换为字节格式并对其进行解码。如何将使用jnetpcap库捕获的数据包转换为数组[bytes],反之亦然?
答案 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),实现中还有其他可用的方法