Logisches AND Niedrigete IP Adresse bestimmen

01/07/2009 - 07:41 von Bernhard Schneider | Report spam
Hallo Ng,

Ich habe versuch mit diesem Code:



namespace bitgeschubse
{
class Program
{


static void Main(string[] args)
{
IPAddress address=IPAddress.Parse("172.24.147.132");
IPAddress subnetMask = IPAddress.Parse("255.255.252.0");
byte[] ipAdressBytes = address.GetAddressBytes();
long ip = 0, subnet = 0;
ip |= ((long)(ipAdressBytes[0])) << 24;
ip |= ((long)(ipAdressBytes[1])) << 16;
ip |= ((long)(ipAdressBytes[2])) << 8;
ip |= ((long)(ipAdressBytes[3]));


byte[] subnetMaskBytes = subnetMask.GetAddressBytes();
subnet |= ((long)(subnetMaskBytes[0])) << 24;
subnet |= ((long)(subnetMaskBytes[1])) << 16;
subnet |= ((long)(subnetMaskBytes[2])) << 8;
subnet |= ((long)(subnetMaskBytes[3]));

ip &= subnet;
Console.WriteLine(((ip >> 24) & 255).ToString() + "." + ((ip >>
16) & 255).ToString() + "." + ((ip >> 8) & 255).ToString() + "." + (ip &
255).ToString());

Console.ReadKey();

}
}
}

Die Niedrigste IP Adresse zu bestimmen aber irgendwo habe ich eine Fehler
den ich nicht finde die Ausgabe die ich errechne ist 172.24.144.0 es sollte
aber 172.24.145.0 herauskommen wo bin ich falsch abegebogen

Danke im Voraus

Bernhard
 

Lesen sie die antworten

#1 Frank Dzaebel
01/07/2009 - 08:35 | Warnen spam
Hallo Bernhard,

Ich habe versuch mit diesem Code: [...]
Die Niedrigste IP Adresse zu bestimmen [...]



Hier ggf. eine bessere Alternative:

IPAddress[] adrs = new IPAddress[] { a1, a2, a3, a4};
var res = from a in adrs let b = a.GetAddressBytes()
orderby b[0], b[1], b[2], b[3] select a;
______________

Du scheinst hier ja auch nur IPV4 berücksichtigen zu müssen.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen