Technische Dokumentation IPCalculator Version 1.0 Daut Musolli und Alexander Rieke
Inhalt Einleitung... 1 Technische Details... 1 Konsolenanwendung... 1 Klassendiagramm... 1 Methoden... 1 Grafische Benutzeroberfläche... 3 Methoden... 4
Einleitung Dieses Dokument beschreibt die Gesamtanwendung von IPCalculator. Dabei wird eine Unterteilung zwischen der Konsolenanwendung und der Grafische Benutzeroberfläche, welche auf die Konsolenanwendung zugreift, getroffen. Anhand eines Klassendiagramms wird der Aufbau und Ablauf der Anwendung beschrieben. Technische Details Programmiersprache: C#.NET-Version: 4.0 Getestet unter Windows 7 und Windows XP Konsolenanwendung Die Konsolenanwendung stellt folgende Funktionalitäten zur Verfügung: Größten Präfix aus zwei Adressen berechnen Aus einem Präfix und zwei Präfix-Längen, die Anzahl an Netzen ermitteln Zu einer Adresse alle Darstellungsmöglichkeiten anzeigen Klassendiagramm Abbildung 1 - Klassendiagramm IPCalculator Der Ablauf von IPCalculator sieht wie folgt aus: Die Main-Methode nimmt die Kommandozeilenargumente entgegen und übergibt sie der Methode CheckArguments. Diese prüft die Eingabe und ruft eine der drei Methoden auf die, die Funktionalität bereitstellen, dies sind TransformIP, CalculateLongestPrefix und CountNumberOfNets. Die Methode Help wird aufgerufen, wenn eine falsche Eingabe erfolgt oder dies per Argument erwünscht ist. Methoden Nun folgt eine Methodenübersicht und deren Funktionalität. Dabei werden nur die notwendigsten Methoden vorgestellt und behandelt. Für weitere Implementierungsdetails steht der Quelltext, welcher Kommentiert ist, zur Verfügung. 1
CheckArguments(args: string[]) Aufgrund der Anzahl an Funktionalitäten, muss geregelt werden wie und welche Parameter, beim ausführen des Programms, behandelt werden. Diese Methode nimmt die, bei der Ausführung angegebenen, Argumente als Stringarray entgegen und wertet diese aus. Je nach Eingabe wird die entsprechende Methode aufgerufen oder bei Falscheingabe eine Fehlermeldung inkl. Hilfe ausgegeben. TransformIP(ipAddress: IPAddress) Diese Methode transformiert eine gegebene IP-Adresse in drei grundlegende Darstellungsformen: Kompakt (Bsp.: 2002:1234::5678) Volle Länge (Bsp.: 2002:1234:0000:0000:0000:0000:0000:5678) Mit IPv4 (Bsp.: 2002:1234:0000:0000:0000:0000:0.0.86.120) Wenn die angegebene IP-Adresse eine 6to4 Adresse ist, dann wird zusätzlich folgende Darstellung ausgegeben: 6to4: (Bsp.: 2002:18.52.0.0:0000:0000:0000:0000:5678) CalculateLongestPrefix(ipAddress1: IPAddress, ipaddress2: IPAddress) Die CalculateLongestPrefix- Methode berechnet aus zwei, als Parameter übergebene, IP-Adressen das längste Präfix, in welchen beide Adressen enthalten sind. CountNumberOfNets(prefix:IPAddress. prefixlength1:int, prefixlength1:int) Diese Methode berechnet zu einer gegebenen IP-Adresse und zwei Prefixlängen, die Anzahl an möglichen Subnetze, welche sich innerhalb dieses Bereiches befinden. Dabei ist, aufgrund der großen Anzahl an Subnetzen, eine Grenze definiert, welche ab 16 Subnetzen, nur das erste und letzte Subnetz anzeigt. 2
Grafische Benutzeroberfläche Aufgrund der Benutzerfreundlichkeit wurde eine GUI, welche die Konsolenanwendung aufruft, erstellt. Dabei werden die Parameter, welche die Konsolenanwendung entgegennimmt, über die GUI gebildet und der Konsolenanwendung beim Start übergeben. Danach wird die Ausgabe der Konsolenanwendung abgefangen und durch ein Textfeld in der GUI angezeigt. Abbildung 2 - IPCalculaor GUI 3
Abbildung 3 - Klassendiagramm GUI Methoden In der Methodenübersicht werden nur die notwendigsten Methoden vorgestellt und behandelt. Für weitere Implementierungsdetails steht der Quelltext, welcher kommentiert ist, zur Verfügung. text_box_c_prefix_keyup(sender: object, e: KeyEventArgs) Wird aufgerufen, wenn eine Eingabe in text_box_c erfolgt und wertet die eingegebene IP-Adresse aus. Wenn es sich um eine gültige Adresse handelt, wird die Eingabe der Präfixlängen ermöglicht und die Eingaben in das Stringarray, welches die Parameter der Konsolenanwendung repräsentiert, gesichert. textbox_t_prefix_textchanged(sender: object, e: EventArgs) Wird aufgerufen, wenn sich der Inhalt von textbox_t_prefix ändert und prüft die Gültigkeit der eingegebenen Adresse und sichert sie in das Strigarray. textbox_l_first_prefix_textchanged(object sender, EventArgs e) und textbox_l_second_prefix_textchanged(object sender, EventArgs e) Wird aufgerufen, wenn sich der Inhalt von textbox_l_first_prefix bzw. textbox_l_second_prefix ändert und prüft die Gültigkeit der eingegebenen Adresse und sichert sie in das Strigarray. CheckRadioButtons() Überprüft welcher Radiobutton derzeit ausgewählt ist und führt folgende Aufgaben durch: Zurücksetzen aller Felder Sichern des Parameters in das Stringarray 4
Benötigte Felder aktivieren und nicht benötigte Felder deaktivieren HandleProces() Startet die Konsolenanwendung mit dem angegebenen Parameter und fängt die Ausgabe ab und gibt sie aus. 5