Ich versuche, ein kleines Programm zu machen, wo ich eine IPv4-Adresse und eine SubMask-Adresse eingeben kann.Binär String zu int und dann ein BitWise UND
Adaequat ...
Dann werde ich eine AND machen, so kann ich sehen, was Subnetzwerk die IPv4-Adresse aus ist, in (binärer Form) ... und ich kann es nicht funktionieren kann jemand ..
Hier im Versuch, die bitweise String in einen Int zu konvertieren, helfen, so kann ich machen und AND, aber meine variabels iSIDs und iSIDr (int-Datentyp) nicht einen Wert erhalten ..
die Variables Subresult und Ergebnis sind dezimale IPv4-Adresse in 32-Bit-Form so BitWise-Zeichenfolgen ...
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
Nur so haben alle den Code vor dem Code, den ich anfing zu schreiben .. Mein Code, bevor dann UND-Code ist hier
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);
eine IPv4-Adresse Konvertieren von Parsen es ohne Perioden in int ist sehr falsch und in der Regel überläuft – harold
zum Beispiel Sehen Sie hier http://stackoverflow.com/questions/1499269/how-to-check-if- an-ip-address-is-in-a-particular-subnet zur Überprüfung einer IP für ein Subnetz – xanatos
Benutze uint anstelle von int. IPV4 max Werte können 0xFFFFFFFF sein, was einen int, aber nicht Uint überläuft. – jdweng