Bonjoir (c'est trop tôt pour bonsoir et trop tard pour bonjour)
C# sait convertir un entier en binaire, par contre ça donne le résultat en string (ça s'explique car la base 16 nécessite des lettres)
string binaire = Convert.ToString(192, 2);
Ça fait aussi l'inverse
int decimale = Convert.ToInt32("01010101", 2);
Ensuite, qu'est ce qu'une adresse IP sous cette forme
"192.168.1.1"
?
C'est un string, qui présente des séries de chiffres séparés par un point.
Il y a un outil qui sert à transformer ce type de chaine en tableau de chaque sous chaines, string.Split.
string[] monIpTexte = "192.168.1.1".Split('.');
Et il y a l'inverse aussi, string.Join.
Une fois tout ça compilé
string[] monIpTexte = "192.168.1.1".Split('.');
string[] monIpBinaire = new string[4];
for (int i = 0; i < 4;i++ )
{
int dec = Convert.ToInt32(monIpTexte[i]);
monIpBinaire[i] = Convert.ToString(dec, 2);
}
string ipBinaire = string.Join(".", monIpBinaire);
Bon là évidement, je pars du principe que le format de la chaine est validée.
L'idéal serait quand même de passer par une Regex pour vérifier
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
Modifié par Whismeril le 8/06/2016 à 18:06
8 juin 2016 à 18:15
9 juin 2016 à 08:22
Encore merci!
9 juin 2016 à 09:38
4 févr. 2018 à 13:16