Skip to main content

Jxnet: Saving Packets To A Dump File With Callback



package com.ardikars.test.jxnet;

import java.nio.ByteBuffer;

import com.ardikars.jxnet.Jxnet;
import com.ardikars.jxnet.Pcap;
import com.ardikars.jxnet.PcapDumper;
import com.ardikars.jxnet.PcapHandler;
import com.ardikars.jxnet.PcapPktHdr;

public class SavingPacketsToADumpFileWithCallback {

 public static void main(String[] args) {

  StringBuilder errbuf = new StringBuilder();
  String source = Jxnet.PcapLookupdev(errbuf);
  if(source == null) {
   System.err.println(errbuf.toString());
   return;
  }
  Pcap pcap = Jxnet.PcapOpenLive(source, 65535, 1, 2000, errbuf);
  if(pcap == null) {
   System.err.println(errbuf.toString());
   return;
  }
  PcapDumper pcap_dumper = Jxnet.PcapDumpOpen(pcap, "dump.pcap");
  if(pcap_dumper == null) {
   System.err.println(Jxnet.PcapGetErr(pcap));
   Jxnet.PcapClose(pcap);
   return;
  }
  PcapHandler callback = new PcapHandler() {
   @Override
   public void nextPacket(PcapDumper pcap_dumper, PcapPktHdr h, ByteBuffer sp) {
    Jxnet.PcapDump(pcap_dumper, h, sp);
    System.out.println(h);
    System.out.println(sp);
   }
  };
  Jxnet.PcapLoop(pcap, 10, callback, pcap_dumper);
  Jxnet.PcapClose(pcap);
  Jxnet.PcapDumpClose(pcap_dumper);
  
 }

}


Comments