All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tools.sniffer.SniffFileParser Maven / Gradle / Ivy

There is a newer version: 1.3.0-91
Show newest version
package tools.sniffer;

import java.io.*;
import java.util.*;
import tools.tracesviewer.*;

/** 
* Code to convert Ethereal frames to the XML format that the trace viewer
* application likes. 
* @author Tim Bardzil .
*
* Acknowledgement:
* This code was contributed by Tim Bardzil .
* This code was completed as part of a class project in TLEN 5843
* Singaling Protocols, taught by Professor Douglas C. Sicker, Ph.D. at
* the University of Colorado, Boulder.
* Minor modifications to the code were made by M. Ranganathan .
*
*/
public class SniffFileParser {
	SniffSessionList sniffSessionList;

	public SniffFileParser(String messageFile) {
		String buffer = new String();
		ArrayList sniffMsgList;
		sniffSessionList = new SniffSessionList();

		try {
			BufferedReader in = new BufferedReader(new FileReader(messageFile));
			buffer = in.readLine();
			while (buffer != null) { //read until EOF
				sniffMsgList = new ArrayList();
				while (buffer != null
					&& buffer.length() > 0) { //read one frame
					sniffMsgList.add(buffer.trim());
					buffer = in.readLine();
				}
				SniffMessage sniffMsg = new SniffMessage(sniffMsgList);
				sniffSessionList.add(sniffMsg);
				buffer = in.readLine();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public SniffSessionList getSniffSessionList() {
		return sniffSessionList;
	}

	/**
	 * The main entry point.
	 *
	 *@param args is the argument file. args[0] is the Ethereral packet
	 * sniffer output to convert to the format that the trace viewer
	 * likes.
	 */
	public static void main(String args[]) {
		String fileName = args[0];
		SniffMessageList.fileName = fileName;
		if (args[0] == null) {
			System.out.println("Please specify sniffer file");
			System.out.println("Bailing Out!");
			System.exit(0);
		}
		SniffFileParser sfp = new SniffFileParser(args[0]);
		SniffSessionList sniffSessions = sfp.getSniffSessionList();
		//String[] sessionNames = sniffSessions.getCallIds();
		LogFileParser parser = new LogFileParser();
		Hashtable traces = parser.parseLogsFromString(sniffSessions.toXML());
		new TracesViewer(traces, fileName, "Ethereal Sniffer Trace", null)
			.show();

	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy