6237 Programmering II (Csharp) Agenda/Hjaelp til sprint 1

From Teknologisk videncenter
Jump to: navigation, search

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 ved at matche DNS query og DNS responce. For at læse TCP/IP adresser ud kan funktionen StringSplit være en hjælp