/* * Copyright 2010 NCHOVY * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.io.*; import java.net.*; import java.util.List; import org.junit.Ignore; import org.junit.Test; import org.krakenapps.pcap.Protocol; import org.krakenapps.pcap.decoder.http.HttpDecoder; import org.krakenapps.pcap.decoder.http.HttpProcessor; import org.krakenapps.pcap.decoder.http.HttpRequest; import org.krakenapps.pcap.decoder.http.HttpResponse; import org.krakenapps.pcap.live.PcapDevice; import org.krakenapps.pcap.live.PcapDeviceManager; import org.krakenapps.pcap.live.PcapDeviceMetadata; import org.krakenapps.pcap.util.Buffer; import org.krakenapps.pcap.util.PcapFileRunner; import org.krakenapps.pcap.util.PcapLiveRunner; @Ignore public class PcapTest { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub URLTest("http://www.malwaredomains.com/files/domains.txt"); //PcapTest(); } public static void URLTest(String url) throws IOException { URL ocu = new URL(url); URLConnection con = ocu.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); String inputLine; int count = 0; while ((inputLine = in.readLine()) != null) { System.out.println(inputLine); ++count; if( count == 20 ) break; } in.close(); } public static void PcapTest() throws IOException { System.loadLibrary("kpcap"); // Show Packet Capture Device List List<PcapDeviceMetadata> dList = PcapDeviceManager.getDeviceMetadataList(); // for( int i=0 ; i<dList.size() ; i++ ) // { // System.out.println(dList.get(i).getDescription()); // } // Open Device PcapDevice d = PcapDeviceManager.open(dList.get(1).getName(), 5000); System.out.println("DEVICE : "+d.getMetadata().getDescription()+" has been loaded!"); HttpDecoder httpdec = new HttpDecoder(); httpdec.register(new HttpProcessor() { @Override public void onRequest(HttpRequest req) { // TODO Auto-generated method stub System.out.print(">> "); System.out.println(req.getURL()); String header = ""; header += "\tHost : "+req.getHeader("Host")+"\n"; header += "\tLanguage : "+req.getHeader("Accept-Language")+"\n"; header += "\tEncoding : "+req.getHeader("Accept-Encoding")+"\n"; header += "\tReferer : "+req.getHeader("Referer")+"\n"; header += "\tUser-Agent : "+req.getHeader("User-Agent")+"\n"; header += "\tConnection : "+req.getHeader("Connection")+"\n"; header += "\tAccept : "+req.getHeader("Accept")+"\n"; System.out.print( header ); } @Override public void onResponse(HttpRequest req, HttpResponse resp) { // TODO Auto-generated method stub System.out.print("<< "); System.out.println(req.getURL()); String header = ""; header += "\tHost : "+req.getHeader("Host")+"\n"; header += "\tLanguage : "+req.getHeader("Accept-Language")+"\n"; header += "\tEncoding : "+req.getHeader("Accept-Encoding")+"\n"; header += "\tReferer : "+req.getHeader("Referer")+"\n"; header += "\tUser-Agent : "+req.getHeader("User-Agent")+"\n"; header += "\tConnection : "+req.getHeader("Connection")+"\n"; header += "\tAccept : "+req.getHeader("Accept")+"\n"; System.out.print( header ); } @Override public void onMultipartData(Buffer buffer) { // TODO Auto-generated method stub ; } }); // live runner PcapLiveRunner runner = new PcapLiveRunner(d); runner.setTcpProcessor(Protocol.HTTP, httpdec); runner.run(); // file runner // PcapFileRunner pfr = new PcapFileRunner(new File("test.pcap")); // pfr.setTcpProcessor(Protocol.HTTP, httpdec); // pfr.run(); } }