C# IISを使ったASP.netで、クライアントのIPアドレスを取得する
// 要求元クライアントのIPアドレス
string userIp = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
// または以下(こっちの方が文字列リテラルが含まれないので美しい)
userIp = System.Web.HttpContext.Current.Request.UserHostAddress;
なお、実行環境自身のIPアドレスを取るには
IPAddress[] lIp = Dns.GetHostAddresses(Dns.GetHostName());
// IPv4を抽出する必要がある
foreach (var iIp in lIp)
{
if (iIp.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
{
return iIp.ToString();
}
}