Belirli bir ağ kartını dinliyorum ve jPcap kütüphanesini kullanarak TCP (sadece TCP) paketlerini yakalarım. Ancak, tek tek paketler değil, tüm TCP oturumlarına sahip olmam gerekiyor.Gerçek Zamanlı TCP oturum yeniden yapılandırmayı kullanarak jPcap'ı kullanarak jpegap
Wireshark'da "tcp akışını takip et" seçeneğini seçebilirim, böylece tüm sohbeti başından sonuna kadar alabilirim. Ben tam olarak bunu Java’da yapmak istiyorum. Bu paketleri gerçek zamanlı olarak nasıl yeniden yapılandırabilirim? Ağ kartını dinlerken ve yeni paketler yakalarken TCP oturumlarını yeniden oluşturmak istiyorum. Bunu nasıl başarabilirim? - ama HashMap<String,TCPPacket>
kullanmak
jpcap.NetworkInterface[] devices = JpcapCaptor.getDeviceList();
JpcapCaptor captor = JpcapCaptor.openDevice(devices[1], 65535, true, 1000);
JpcapWriter writer = JpcapWriter.openDumpFile(captor, "myNetworkDump");
captor.loopPacket(-1, new PacketPrinter(writer));
class PacketPrinter implements PacketReceiver {
private HashMap<Long, ArrayList<Packet>> sessions;
private BufferedWriter out;
private JpcapWriter writer;
Map<Long, TCPBodyData> bodies = new HashMap<Long, TCPBodyData>();
public PacketPrinter(JpcapWriter writer) {
this.writer = writer;
this.sessions = new HashMap<Long, ArrayList<Packet>>();
}
public void receivePacket(Packet packet) {
System.out.println(packet);
if (packet instanceof TCPPacket) {
TCPPacket tcppacl = (TCPPacket) packet;
byte[] body = addBodyData(tcppacl);
// System.out.println(new String(body));
}
}
}
Farklı kalitede jPcap adı verilen en az üç farklı proje vardır. – EJP