Je suis en train de faire un petit programme, où je peux taper une adresse IPv4 et une adresse SubMask.Chaîne binaire à int puis un BitWise ET
fonctionne très bien ...
Ensuite, je vais faire un ET, donc je peux voir ce que l'adresse IPv4 SubNetwork est de, en (binaire) ... et je ne peux pas le faire fonctionner , quelqu'un peut-il aider ..
ici im essayant de convertir la chaîne de bits à un Int, donc je peux faire et AND, mais mes variabels iSIDs et iSIDr (type int) DonT obtenir une valeur ..
le variabels subrésult et result sont des adresses de conversion IPv4 décimales en 32 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 tous le code avant le code que je commencé à écrire .. Mon code avant alors et le code 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);
Conversion d'une adresse IPv4 int en analysant sans périodes est très mal et déborde généralement – harold
Voir par exemple ici http://stackoverflow.com/questions/1499269/how-to-check-if- adresse-ip-est-dans-un-sous-réseau particulier sur la façon de vérifier une adresse IP pour un sous-réseau – xanatos
Utilisez uint au lieu de int. Les valeurs maximales d'IPV4 peuvent être 0xFFFFFFFF, ce qui débordera un int, mais pas uint. – jdweng