如何在 ASP.NET MVC C# 中获取客户端的 IP 地址?

csharpserver side programmingprogramming更新于 2025/4/14 23:07:17

网络上的每台机器都有一个唯一标识符。就像您在邮件中写明要发送的信件一样,计算机使用唯一标识符将数据发送到网络上的特定计算机。当今大多数网络(包括互联网上的所有计算机)都使用 TCP/IP 协议作为如何在网络上通信的标准。在 TCP/IP 协议中,计算机的唯一标识符称为其 IP 地址。

使用 HttpRequest.UserHostAddress 属性

示例

using System.Web.Mvc;
namespace DemoMvcApplication.Controllers{
   public class HomeController : Controller{
      public string Index(){
         string ipAddress = Request.UserHostAddress;
         return ipAddress;
      }
   }
}

如果我们想在控制器外部(即在普通类中)获取 IP 地址,我们可以像下面这样操作。

using System.Web;
namespace DemoMvcApplication.Helpers{
   public static class DemoHelperClass{
      public static string GetIPAddress(){
          string ipAddress = HttpContext.Current.Request.UserHostAddress;
         return ipAddress;
      }
   }
}

使用 ServerVariables 的示例

using System.Web.Mvc;
namespace DemoMvcApplication.Controllers{
   public class HomeController : Controller{
      public string Index(){
         string ipAddress = Request.ServerVariables["REMOTE_ADDR"];
         return ipAddress;
      }
   }
}

输出

由于我们在本地运行应用程序,因此本地主机的 IP 地址为 ::1。名称 localhost 通常解析为 IPv4 环回地址 127.0.0.1,解析为 IPv6 环回地址 ::1


相关文章