Skip to main content

Jxnet: Filtering The Traffic



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);
  
 }

}

Comments

Popular posts from this blog

Membuat Mirror Untuk Repository OpenWrt

Server yang akan dijadikan repository bisa Ubuntu/Debian/Raspbian/dll Install wget # apt-get install wget Install Apache2 # apt-get install apache2 Download packages # wget -r --no-parent --reject "index.html*" http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/ # mv downloads.openwrt.org/ /var/www # chown -Rf www-data:www-data /var/www/downloads.openwrt.org # chmod  -Rf a+rwx /var/www/downloads.openwrt.org # /etc/init.d/apache2 restart Menggunakan repository OpenWrt yang telah dibuat. # vi /etc/opkg.conf Ganti downloads.openwrt.org dengan IP Server yang dijadikan repository tadi. Catatan: Untuk versi lain (Chaos Calmer atau yang lainnya) tinggal disesuaikan saja.

Membuat Extroot (Rootfs on External Storage) di OpenWrt

Format USB Flasdisk atau sejenisnya dan bagi menjadi 2 partisi Partisi 1 (Ext4 File System) Partisi 2 (Linux Swap) Install beberapa aplikasi (paket) yang dibutuhkan # opkg install block-mount kmod-fs-ext4 kmod-usb-storage Jika terdapat error ketika meng-install kmod-usb-storage coba install kmod-usb-core # opkg instal kmod-usb-core Lihat informasi storage # block info Maka akan menampilkan /dev/sdb1 dan /dev/sdb2 (swap), output-nya mungkin akan berbeda-beda. Memulai proses extroot # mount /dev/sda1 /mnt # mkdir /tmp/cproot # mount --bind / /tmp/cproot # tar -C /tmp/cproot -cvf - . | tar -C /mnt -xvf - # sync; umount /mnt # umount /tmp/cproot Membuat template untuk fstab # block detect > /etc/config/fstab Mengubah fstab # vim /etc/config/fstab config 'mount' => option target '/overlay' & option enabled '1' config 'swap' => option device '/dev/sda2' & option enabled '1' ...

Jxnet: Obtaining The Device List

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())...