// クライアントのIPアドレスの範囲を判定したい
// しかし、.NETではIPアドレスの範囲判定のクラスがなさそう
// IPアドレスは、32bitので構成されているはず。
// bitを10進数に変換すれば、数値での範囲比較が可能となる。
// そう思い、IPアドレスを数値に変換した。
// (.NETではIPAddressクラスにAddressというプロパティがあり、数値で取得できるが、互換性のために残されているので利用できない。)
// TODO:もっと良い方法があるかもしれない。
string ipAddress = "255.255.255.255";
IPAddress ipaddress = IPAddress.Parse(ipAddress);
Byte[] bytes = ipaddress.GetAddressBytes();
// リトルエンディアン対応
Byte[] reverseBytes = bytes.Reverse().ToList().ToArray();
// ToInt64用にLength8のbyte配列を用意してコピーする
byte[] target = new byte[8];
Array.Copy(reverseBytes, target, reverseBytes.Length);
// 最大値255.255.255.255 = 4,294,967,295
uint result = BitConverter.ToInt64(target.ToArray(), 0);
Console.WriteLine(result);