Repository navigation
Expand file tree
/
Copy pathWiresharkLike.java
More file actions
50 lines (47 loc) · 1.7 KB
/
Copy pathWiresharkLike.java
File metadata and controls
50 lines (47 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import java.io.*;
import java.util.*;
class WiresharkLike {
public static void main (String[] args){
if (args == null || args.length != 3
&& args.length != 1
|| (args.length == 3 && !args[1].equals("-o"))){
System.err.println("Usage:\njava Wiresharklike PCAPFILE [-o OUTPUTFILE]\n");
System.exit(1);
}
Parser parser = new Parser(args[0]);;
Printer printer = new Printer();
parser.parse();
if (args.length == 3){
try {
PrintWriter logFile = new PrintWriter( new BufferedWriter (new FileWriter(args[2])));
logFile.write(printer.printGlobalHeader(parser.getGlobalHeader()) + "\n" + printer.printPackets(parser.getPackets(), null));
logFile.close();
}catch(Exception e){
System.out.println("Impossible to open " + args[2] + " !");
System.exit(1);
}
return;
}
System.out.println(printer.printGlobalHeader(parser.getGlobalHeader()) + "\n" + printer.printPackets(parser.getPackets(), null));
boolean loop = true;
Scanner sc = new Scanner(System.in);
while(loop){
String cmd = sc.nextLine();
try {
if (cmd.equals("q") || cmd.equals("quit"))
loop = false;
else if (cmd.split(" ")[0].equals("d"))
System.out.println(printer.printPacketDetail(parser.getPackets(), Integer.parseInt(cmd.split(" ")[1]) - 1));
else if (cmd.split(" ")[0].equals("c"))
System.out.println(printer.printConversation(parser.getPackets(), Integer.parseInt(cmd.split(" ")[1]) - 1));
else if (cmd.split(" ")[0].equals("f"))
System.out.println(printer.printPackets(parser.getPackets(), cmd.split(" ")[1]));
else
System.err.println("Syntax error");
}catch(Exception e){
e.printStackTrace();
System.err.println("Syntax error");
}
}
}
}