package capture; import net.sourceforge.jpcap.capture.PacketCapture; import net.sourceforge.jpcap.capture.CaptureDeviceLookupException; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; /** * Simple packet capture framework. * * This class is free to use, but please leave the header intact. * See www.remoteroot.co.uk for more information. * * User: joe.hancock@gmail.com * Date: 29-Nov-2005 * Time: 23:23:24 */ class Monitor { private String filter = ""; public static void main (String Args[]) { Monitor mon = new Monitor(); mon.captureMenu(); } private void captureMenu() { System.out.println("Please enter a BPF filter."); BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); try { filter = buf.readLine(); } catch (IOException e) { e.printStackTrace(); } this.selectDevice(filter); } private void selectDevice(String filter) { BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); String device = ""; try { String[] devs = PacketCapture.lookupDevices(); for(int i = 0; i < devs.length ; i++) { System.out.println(i + "\t" + devs[i]); } } catch(CaptureDeviceLookupException e) { e.printStackTrace(); } System.out.println("Enter devicename: "); try { device = buf.readLine(); } catch (IOException e) { e.printStackTrace(); } this.init(filter, device); } private static void init(String filter, String device) { MainCapture sniffer = new MainCapture(device, filter); try { System.out.println("Monitering network for \"" + filter + "\""); sniffer.initCapture(); } catch (Exception e) { e.printStackTrace(); } } }