C#のプログラムでループバックアドレスの判定が必要になったのでメモ。
ループバックアドレスとは自分自身を意味する特別なIPアドレスです。
一般的にはローカルループバックアドレスとして127.0.0.1の値が使われます。
ループバックアドレスを判定する場合、素直にこの値と比較してもよいのですが、
C#では判定用のメソッドIsLoopback()が用意されているのでこちらを使ってみます。
IsLoopback
引数にはIPAddress型の判定したいIPアドレスを入れます。
戻り値には引数の値がループバックアドレスであればtrue、そうでなければfalseが返ります。
using System.Net;
private void Form1_Load(object sender, EventArgs e)
{
// 判定するIPアドレス
List<IPAddress> ipList = new List<IPAddress>();
ipList.Add(IPAddress.Parse("10.0.0.1"));
ipList.Add(IPAddress.Parse("127.0.0.1"));
ipList.Add(IPAddress.Parse("172.16.1.1"));
ipList.Add(IPAddress.Parse("192.168.100.1"));
ipList.Add(IPAddress.Parse("255.255.255.255"));
foreach (IPAddress ip in ipList)
{
if (IPAddress.IsLoopback(ip))
{
txtLoopback.Text = ip.ToString();
}
}
}
実行してみると、127.0.0.1だけがループバックアドレスと判定されているのが分かります。

コメント