public class packetGrabber { public static final int netmask = 0xFFFFFF00; public static final int bufferSize = 2000; static final boolean detailed = false; static ip ipPacket; static tcp tcpPacket; static javacap jp; static byte[] packetBuffer; public static void check_error(javacap pcap) { String buffer = pcap.getError(); if(buffer.length()>0){ System.out.println("pcap error: "+buffer); System.exit(1); } } public static void main(String argv[]) { javacap pcap = new javacap(); if (argv.length>0) { pcap.open(argv[0],bufferSize); if (argv.length>1) { String filterString = new String(argv[1]); if (pcap.setFilter(filterString, netmask) == 0) { System.out.println("Using filter: "+filterString); } else { System.out.println("Invalid filter rule: "+filterString); } } } else { System.out.println("usage: packetGrabber interface [filterstring]"); System.exit(1); } packetBuffer = new byte[bufferSize]; int dlt = pcap.getDataLinkType(); System.out.println("Waiting for packets..."); for(int anzahl=1;anzahl<100;anzahl++) { pcap.read(packetBuffer); check_error(pcap); ipPacket = new ip(packetBuffer,dlt); if(detailed){ System.out.println("\n\nNr."+anzahl); System.out.println(ipPacket.headerString()); } if (ipPacket.protocol == 6) { tcp tcpPacket = new tcp(ipPacket,packetBuffer); if(detailed){ System.out.println("\nPayload contains TCP:"); System.out.println(tcpPacket.headerString()); System.out.println(tcpPacket.payloadString()); }else if(!tcpPacket.payloadString().equals("")){ System.out.println(); System.out.println(tcpPacket.payloadString()); } } else { System.out.println("Unknown payload protocol"); } } pcap.close(); } }