J'essaie de créer un petit programme qui me permette de saisir une adresse IPv4 et un sous-masque.
Fonctionne bien...
Ensuite, je vais faire un ET, afin de voir de quel sous-réseau provient l'adresse IPv4, sous forme binaire... Et je n'arrive pas à le faire fonctionner, quelqu'un peut-il m'aider ?
J'essaie de convertir la chaîne bitwise en Int, pour pouvoir faire un AND, mais mes variables iSIDs et iSIDr (int datatype) n'obtiennent pas de valeur .
Les variables subresult et result sont des adresses IPv4 décimales converties en 32 formes binaires, donc des chaînes BitWise...
string SIDsubresult = subresult;
SIDsubresult = SIDsubresult.Replace(".", "");
string SIDresult = result;
SIDresult = SIDresult.Replace(".", "");
int iSIDs = Convert.ToInt32(SIDsubresult);
int iSIDr = Convert.ToInt32(SIDresult);
Console.Write(iSIDr & iSIDs);
EDIT/UPDATE
Juste pour que tout le monde ait le code avant le code que j'ai commencé à écrire Mon code avant puis le code ET est ici
var split = (from p in ipv4add.Split('.') select int.Parse(p)).ToArray();
string result = string.Format("{0}.{1}.{2}.{3}",
Convert.ToString(split[0], 2).PadLeft(8, '0'),
Convert.ToString(split[1], 2).PadLeft(8, '0'),
Convert.ToString(split[2], 2).PadLeft(8, '0'),
Convert.ToString(split[3], 2).PadLeft(8, '0'));
var subsplit = (from s in subnetmaske.Split('.') select int.Parse(s)).ToArray();
string subresult = string.Format("{0}.{1}.{2}.{3}",
Convert.ToString(subsplit[0], 2).PadLeft(8, '0'),
Convert.ToString(subsplit[1], 2).PadLeft(8, '0'),
Convert.ToString(subsplit[2], 2).PadLeft(8, '0'),
Convert.ToString(subsplit[3], 2).PadLeft(8, '0'));
string SIDsubresult = subresult;
SIDsubresult = SIDsubresult.Replace(".", "");
string SIDresult = result;
SIDresult = SIDresult.Replace(".", "");
int iSIDs = Convert.ToInt32(SIDsubresult);
int iSIDr = Convert.ToInt32(SIDresult);
Console.Write(iSIDr & iSIDs);