Getsuyodev, Programming is mainly used when constructing an application. Programming requires knowledge of application domains, algorithms, and programming language expertise. Programming can be developed in different logic based on developer knowledge.

Algorithmique – Une classe de manipulation d’adresse IP de type C

L’Algorithmique (C Sharp)



Objectif : Ecrire une classe AdresseIp permettant de manipuler une adresse IP de type C, de la stocker sous forme numérique ou string,  et de rechercher une machine hôte dans 4 réseaux de classe C. Chacun des 4 réseaux est réparti en services (16 au plus), chaque service dispose de 16 machines au plus. Les noms et les adresses IP des sous réseaux sont stockés dans un tableau nommé Lieu :

Description :
Rappelons que les int sont des entiers signés sur 32 bits  Une adresse IP est codée sur 32 bits et contient ID-réseau/ID-hôte : 151.42.37.124 Un ID-réseau de classe C est codé sur les 24 bits de poids fort, les 3 bits de poids fort étant 110 Un ID-hôte est codé sur 8 bits : les 4 bits de poids fort pour le n° service, les 4 bits de poids faible pour le n° machin Il est demandé de construire le code de chaque méthode de la classe AdresseIp listée ci-dessous selon les spécifications demandées.


Variables locales à la méthode Main

string[]AvecFormat
          Stocke l’adresse sous forme d’un tableau de 4 string formaté, exemple : [“192”, “059”, “066”, “201”].
intbinaire
          Stocke l’adresse sous forme entier 32 bits, exemple : -1069858103
stringchaine
          Stocke l’adresse sous forme de string non formatée, exemple : 192.59.66.201

Methodes de la classe AdresseIp

stringChercherMachine(int adresseIP)
          Recherche du numéro de machine hôte à partir d’une adresse IP en numérique.
stringChercherMachine(string adresseIP)
          Recherche du numéro de machine hôte à partir d’une adresse IP en string.
string[]ConvertAdresseIPStr(int AdrIP)
          Converti une adresse correcte entière 32 bits en un tableau de 4 string.
stringConvertNumIpStr(int adresseIP)
          Converti une adresse IP numérique en string non formatée.
intConvertStrAdresseIP(string[] Adrfinale)
          Converti une adresse correcte rangée dans un tableau de string, en un entier où les bits sont cadrés par octets.
intConvertStrIpNum(string adresseIP)
          Converti une adresse IP string non formatée en adresse numérique.
stringDeFormatAdr(string[] Adrformee)
          Dé-Formattage de l’adresse.
string[]FormatAdr(string AdrBrut)
          Formattage de l’adresse.
intNumeroMachine(int Adresse)
          Identifie et renvoie le numéro de machine du sous-réseau.
intNumeroService(int Adresse)
          Identifie et renvoie le numéro de service du sous-réseau.
stringRechercheNom(int Adresse)
          Identifie et renvoie le nom du sous-réseau dont l’adresse IP est numérique.
stringRechercheNom(string StrIP)
          Recherche du nom du sous-réseau dont l’adresse IP est fournie en string formatée ou non.
string[]VerifieClasseC(string[] Adr)
          Vérife que l’adresse est de classe C ([“192”,”…] à [“223”,”…] sinon renvoie [“223”,”…]. par défaut).

 Remonter 


Les en-têtes des méthodes de la classe AdresseIp

RechercheNom

public static string RechercheNom(string StrIP)    

Recherche du nom du sous-réseau dont l’adresse IP est fournie en string formatée ou non. Paramètres:StrIP – l’adresse sous forme d’une string, exemple : 193.020.007.123 ou 193.20.07.123 ou… Renvoie: string renvoie le nom du réseau, dans l’exemple : Zone51


RechercheNom

public static string RechercheNom(int Adresse)

Identifie et renvoie le nom du sous-réseau dont l’adresse IP est numérique. Paramètres:Adresse – une adrese IP numérique de classe C, exemple :-1069858103 Renvoie: string identifie le nom du sous-réseau contenu dans l’adresse, dans exemple : Montauwk


VerifieClasseC

public static string[] VerifieClasseC(string[] Adr)

Vérife que l’adresse est de classe C ([“192”,”…] à [“223”,”…] sinon renvoie [“223”,”…]. par défaut). Paramètres:Adr – l’adresse sous forme de 4 string code décimal, exemple : [“942″,”001″,”004″,”087”] Renvoie: string[ ] renvoie une adresse de classe C, exemple : [“223″,”001″,”004″,”087”]


FormatAdr

public static string[] FormatAdr(string AdrBrut)

Formattage de l’adresse. Paramètres:AdrBrut – l’adresse brute, exemple : “123.1.4.87” Renvoie: string[] ressort sous la forme d’un tableau de string : [“123″,”001″,”004″,”087”]


DeFormatAdr

public static string DeFormatAdr(string[] Adrformee)

Dé-Formattage de l’adresse. Paramètres:Adrformee – l’adresse déjà formée dans un tableau de string, exemple : [“123″,”001″,”004″,”087”] Renvoie: string ressort sous forme d’une string : 123.1.4.87


ConvertStrAdresseIP

public static int ConvertStrAdresseIP(string[] Adrfinale)

Converti une adresse correcte rangée dans un tableau de string, en un entier où les bits sont cadrés par octets. Paramètres:Adrfinale – adresse IP correcte (tableau de 4 string), exemple : 192.59.66.201 Renvoie: int l’entier sur 32 bits représentant l’adresse IP, exemple : -1069858103


ConvertAdresseIPStr

public static string[] ConvertAdresseIPStr(int AdrIP)

Converti une adresse correcte entière 32 bits en un tableau de 4 string. Paramètres:AdrIP – adresse IP entier sur 32 bits représentant l’adresse IP, exemple :-1069858103 Renvoie: string[ ] correcte (tableau de 4 string), exemple : 192.59.66.201


ConvertNumIpStr

public static string ConvertNumIpStr(int adresseIP)

Converti une adresse IP numérique en string non formatée. Paramètres:adresseIP – une adresse IP numérique, exemple : -1069858103 Renvoie: string l’adresse convertie en string non formatée, exemple : 192.56.66.201


ConvertStrIpNum

public static int ConvertStrIpNum(string adresseIP)

Converti une adresse IP string non formatée en adresse numérique. Paramètres:adresseIP – une adresse IP en string non formatée, exemple : 192.56.66.201 Renvoie: string l’adresse convertie en numérique, exemple : -105044522


ChercherMachine

public static string ChercherMachine(int adresseIP)

Recherche du numéro de machine hôte à partir d’une adresse IP en numérique. Paramètres:adresseIP – une adresse IP, entier 110… sur 32 bits, complète à analyser Renvoie: string contient le nom du réseau,le n° du service et le n° de machine hôte.


ChercherMachine

public static string ChercherMachine(string adresseIP)

Recherche du numéro de machine hôte à partir d’une adresse IP en string. Paramètres:adresseIP – une adresse IP,”xxx.yyy…”, string complète à analyser Renvoie: string contient le nom du réseau, le n° du service et le n° de machine hôte.


NumeroMachine

public static int NumeroMachine(int Adresse)

Identifie et renvoie le numéro de machine du sous-réseau. Paramètres:Adresse – une adrese IP de classe C, exemple : 192.56.66.201 Renvoie: int identifie le n° de machine grâce au masque 255.255.255.240 et à son complément 0.0.0.15, exemple : machine n°9


NumeroService

public static int NumeroService(int Adresse)

Identifie et renvoie le numéro de service du sous-réseau. Paramètres:Adresse – une adrese IP de classe C, exemple : 192.56.66.201 Renvoie: int identifie le n° de machine grâce au masque 255.255.255.15 et à son complément 0.0.0.240, exemple : service n°12 Remonter 


Exécution

Soit une implantation de la méthode Main à tester avec votre programme :

public static void Main(string[ ] args)
{
int AdrInt ;
string AdrStr ;
string[ ] AvecFormat = null;

AdrStr = ConvertNumIpStr(-1069858103);
AdrInt =  ConvertStrIpNum(“192.59.66.201”);
System.Console.WriteLine(“adresse str = “+AdrStr+” <=> num = “+AdrInt);
System.Console.WriteLine(“ChercherMachine par adresse num : “+ChercherMachine(-1069858103));
System.Console.WriteLine(“ChercherMachine par adresse string : “+ChercherMachine(“192.59.66.201”));
System.Console.WriteLine(“RechercheNom par adresse num : “+RechercheNom(-1069858103));
System.Console.WriteLine(“RechercheNom par adresse string : “+RechercheNom(“192.59.66.201”));
System.Console.WriteLine(“—————————————–“);
string UneAdresse =”102.8.12.9″, autreAdresse =””;
AvecFormat = FormatAdr(UneAdresse );
System.Console.Write(UneAdresse +” formattée = “);
// stockez l’adresse formattée dans “autreAdresse’  et affichez-la …..
System.Console.WriteLine(autreAdresse);
autreAdresse = DeFormatAdr(AvecFormat );
System.Console.WriteLine(” La même adresse une fois déformattée = “+autreAdresse );
System.Console.ReadLine();
}

Résultats de l’exécution :


Comments are closed, but trackbacks and pingbacks are open.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More