6237 Programmering II (Csharp) Agenda/Hjaelp til sprint 1
Sprint 1 Her er mit oplæg til en struktur på Sprint 1.
Her under er et eksempel på en pakke den information vi skal finde står alt sammen i linie 2. Med Substring funktionen kan vi finde de steder i linien der indeholder informationer om Source, Destination etc.
No. Time Source Destination Protocol Length Info 5 0.003605000 172.16.236.177 4.53.56.199 TCP 54 50216→44445 [FIN, ACK] Seq=38 Ack=149 Win=254 Len=0 Frame 5: 54 bytes on wire (432 bits), 54 bytes captured (432 bits) on interface 0 Ethernet II, Src: 3c:a9:f4:5a:98:30 (3c:a9:f4:5a:98:30), Dst: 70:81:05:5e:5a:71 (70:81:05:5e:5a:71) Internet Protocol Version 4, Src: 172.16.236.177 (172.16.236.177), Dst: 4.53.56.199 (4.53.56.199) Transmission Control Protocol, Src Port: 50216 (50216), Dst Port: 44445 (44445), Seq: 38, Ack: 149, Len: 0
Koden i Main indeholder det der skal til for at finde de enkelte pakker i Log filen. Linierne i pakken gemmes i en List<String> hvorefter Metoden analyze kaldes.
class Program1
{
static StreamWriter outFile;
static StreamReader inFile;
static void analyze(List<String> lines)
{
if (lines.Count < 2) return;
//Protokol navnet står fra plads 69 og 9 pladser frem
String protocol = lines[1].Substring(67, 9);
//Tilføj også kode der kan læse Source og Destination
if (protocol.Trim().ToUpper() == "ARP")
{
//Tilføj kode her der tæller antallet af ARP og gemmer deres source i en List
}
if (protocol.Trim().ToUpper() == "DNS")
{
//Tilføj kode her der tæller antallet af DNS og gemmer den URL der søges på
}
}
//static void Main(string[] args)
static void Main(string[] args)
{
inFile = new StreamReader("logfile.txt");
outFile = new StreamWriter("outLogs.txt");
String line;
List<String> lines = new List<string>();
while (!inFile.EndOfStream)
{
line = inFile.ReadLine();
//Hvis line starter med No. er det en ny pakke, så skal vi først analysere den gamle
if (line.StartsWith("No.") || inFile.EndOfStream)
{
analyze(lines);
lines = new List<string>();
}
lines.Add(line);
}
inFile.Close();
outFile.Close();
}
}
Opgave
Lav ved hjælp af substring kode der finder source og destination for protokollerne.
Find antallet af ARP protokoller og MAC adressen på deres afsender.
Find antallet af DNS queries.
Lav en liste over de hjemmesider der er lavet DNS opslag på.
Tæl antallet af DNS opslag på hver hjemeside. Kig evt. på Dictionary
Find også TCP/IP adressen på hjemmesiderne. Her kan funktionen StringSplit være en hjælp