package com.ardikars.test.jxnet;
import java.nio.ByteBuffer;
import com.ardikars.jxnet.BpfProgram;
import com.ardikars.jxnet.Jxnet;
import com.ardikars.jxnet.Pcap;
import com.ardikars.jxnet.PcapHandler;
import com.ardikars.jxnet.PcapPktHdr;
import com.ardikars.jxnet.PcapStat;
public class FilteringTheTraffic {
public static void main(String[] args) {
StringBuilder errbuf = new StringBuilder();
String source = Jxnet.PcapLookupdev(errbuf);
BpfProgram fp = new BpfProgram();
String filter = "ip";
int netmask = 0xffffff;
PcapStat stat = new PcapStat();
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;
}
if(Jxnet.PcapDatalink(pcap)!= 1) {
System.out.println(source + " is not an Ethernet");
Jxnet.PcapClose(pcap);
return;
}
if(Jxnet.PcapCompile(pcap, fp, filter, 1, netmask) != 0) {
System.err.println("Failed to compile bpf");
Jxnet.PcapClose(pcap);
return;
}
if(Jxnet.PcapSetFilter(pcap, fp) != 0) {
System.err.println("Failed to set filter");
Jxnet.PcapClose(pcap);
return;
}
PcapHandler callback = new PcapHandler() {
@Override
public void nextPacket(String u, PcapPktHdr h, ByteBuffer b) {
System.out.println(h);
System.out.println(b);
}
};
Jxnet.PcapLoop(pcap, 10, callback, null);
if(Jxnet.PcapStat(pcap, stat) !=0 ) {
System.out.println(Jxnet.PcapGetErr(pcap));
} else {
System.out.println("Number of packets received = " + stat.getPsRecv());
System.out.println("Number of packets dropped = " + stat.getPsDrop());
System.out.println("Drops by interface = " + stat.getPsIfdrop());
}
Jxnet.PcapClose(pcap);
}
}
import java.util.ArrayList; import java.util.List; import com.ardikars.jxnet.Jxnet; import com.ardikars.jxnet.PcapAddr; import com.ardikars.jxnet.PcapIf; import com.ardikars.jxnet.util.AddrUtils; import com.ardikars.jxnet.util.MacAddr; public class PcapFindAllDevs { public static void main(String[] args) { StringBuilder errbuf = new StringBuilder(); List<PcapIf> alldevsp = new ArrayList<PcapIf>(); Jxnet.PcapFindAllDevs(alldevsp, errbuf); for(PcapIf dev : alldevsp) { System.out.println("================================================\n\n"); System.out.println("Name = " + dev.getName()); System.out.println("Description = " + dev.getDescription()); System.out.println("Flags = " + dev.getFlags()); System.out.println("Hardware Address = " + MacAddr.valueOf(dev.getHardwareAddress())...
Comments
Post a Comment