LoginSignup
8
10

More than 5 years have passed since last update.

C#でIPアドレスを数値に変換する方法

Last updated at Posted at 2015-04-29

// クライアントの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);

8
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10