Difference between revisions of "6237 Programmering II (Csharp) Agenda/Hjaelp til sprint 1"

From Teknologisk videncenter
Jump to: navigation, search
(Created page with "Sprint 1 Her er mit oplæg til en struktur på Sprint 1. Du må gerne vælge en anden hvis du har lyst <source lang=csharp> class Program1 { static StreamWriter outFi...")
 
(Opgave)
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
Sprint 1
 
Sprint 1
Her er mit oplæg til en struktur på Sprint 1. Du må gerne vælge en anden hvis du har lyst
+
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.
 +
 
 
<source lang=csharp>
 
<source lang=csharp>
 
class Program1
 
class Program1
Line 10: Line 24:
 
         {
 
         {
 
             if (lines.Count < 2) return;
 
             if (lines.Count < 2) return;
 +
            //Protokol navnet står fra plads 69 og 9 pladser frem
 
             String protocol = lines[1].Substring(67, 9);
 
             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")
 
             if (protocol.Trim().ToUpper() == "DNS")
 
             {
 
             {
                 //Tilføj din kode her
+
                 //Tilføj kode her der tæller antallet af DNS og gemmer den URL der søges på
 
             }
 
             }
 
         }
 
         }
Line 44: Line 66:
 
     }
 
     }
 
</source>
 
</source>
 +
 +
==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å [[6237_Programmering_II_(Csharp)_Agenda/Dictionary|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|StringSplit]] være en hjælp

Latest revision as of 20:06, 8 December 2015

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