-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPrinter.java
More file actions
117 lines (106 loc) · 3.38 KB
/
Printer.java
File metadata and controls
117 lines (106 loc) · 3.38 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import java.util.*;
import java.io.*;
import java.lang.*;
public class Printer{
//TODO Options
private final int LINELENGTH = 125;
private final int LNUM = 5;
private final int LTIME = 10;
private final int LCON = 19;
private final int LPROTO = 5;
private final int LINFO = 60;
public String printGlobalHeader(byte[][] globalHeader){
//TODO LE OR BE
String result = "---------------------- Global Header ---------------------------\n";
result += "Magic Number: " + Utils.byteToHex(globalHeader[0]) + "\n";
result += "Version du PCAP: " + Utils.byteToIntLE(globalHeader[1]) + ".";
result += Utils.byteToIntLE(globalHeader[2]) + "\n";
result += "Snapshot length: " + Utils.byteToIntLE(globalHeader[3]) + "\n";
result += "Network: " + Utils.byteToIntLE(globalHeader[4]) + "\n";
result += "----------------------------------------------------------------\n";
return result;
}
public String printPackets(ArrayList<Packet> packets, String filter){
String result = firstLine();
boolean display = true;
for(Packet p : packets){
if (filter != null){
if (!p.getAllProtocol().contains(filter.toUpperCase()))
display = false;
}
if (display == true){
result += p.tinyPrint(LINELENGTH, LNUM, LTIME, LCON, LPROTO, LINFO);
result += "\n";
for (int i = 0; i < LINELENGTH; i++)
result += "-";
result += "\n";
}
display = true;
}
return result;
}
public String firstLine(){
String result = "";
for (int i = 0; i < LINELENGTH; i++)
result += "-";
result += "\n";
result += String.format("|%-" + LNUM + "." + LNUM + "s|", "N°");
result += String.format("%-" + LTIME + "." + (LTIME - 1) + "s|", "TimeStamp");
result += String.format("%-" + LCON + "s|", "Source");
result += String.format("%-" + LCON + "s|", "Destination");
result += String.format("%-" + LPROTO + "s|", "Proto");
result += String.format("%-" + LINFO + "s|", "Information");
result += "\n";
for (int i = 0; i < LINELENGTH; i++)
result += "-";
result += "\n";
return result;
}
public String printPacketDetail(ArrayList<Packet> packets, int number){
String result = "";
if (number >= packets.size() || number < 0)
return "This packet number doesn't exist.";
for (int i = 0; i < LINELENGTH; i++)
result += "-";
result += "\n";
result += packets.get(number - 0).detailPrint();
result += "\n";
for (int i = 0; i < LINELENGTH; i++)
result += "-";
result += "\n";
return result;
}
public String printConversation(ArrayList<Packet> packets, int begin){
if (begin >= packets.size() || begin < 0)
return "This packet number doesn't exist.";
ArrayList<Integer> numPackets = getConvNumber(packets, begin);
String result = firstLine();
for(int n : numPackets){
result += packets.get(n).tinyPrint(LINELENGTH, LNUM, LTIME, LCON, LPROTO, LINFO);
result += "\n";
for (int i = 0; i < LINELENGTH; i++)
result += "-";
result += "\n";
}
return result;
}
public ArrayList<Integer> getConvNumber(ArrayList<Packet> packets, int begin){
ArrayList<Integer> numPackets = new ArrayList<>();
Packet p = packets.get(begin);
if (p.getTransport() == null)
return numPackets;
Transport t = p.getTransport();
while (t != null){
numPackets.add(t.num - 1);
t = t.getNext();
}
return numPackets;
}
public static String printLayer(Map<String, String> map){
String result = "";
for(Map.Entry<String, String> field : map.entrySet()) {
result += field.getKey() + " = " + field.getValue() + "\n";
}
return result;
}
}