ASP .NET Core中获取IP地址有多种方法,其中包括在控制器中添加以下代码:
using Microsoft.AspNetCore.Http;
...
public class HomeController : Controller
{
private readonly IHttpContextAccessor _httpContextAccessor;
public HomeController(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public IActionResult Index()
{
string ipAddress = _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString();
ViewBag.IPAddress = ipAddress;
return View();
}
}
此代码利用了IHttpContextAccessor和RemoteIpAddress属性来获取IP地址,并将其存储在ViewBag中以在视图中使用。
在视图中,可以通过如下方式访问这个IP地址:
Your IP Address is: @ViewBag.IPAddress
此代码将IP地址作为字符串输出到视图中。注意,RemoteIpAddress属性返回的可能是IPv4或IPv6地址。如果需要,可以根据实际需求进行格式化处理。
除了使用IHttpContextAccessor之外,还可以使用HttpContext中的Request属性中的RemoteIpAddress属性来获取IP地址:
string ipAddress = HttpContext.Request.HttpContext.Connection.RemoteIpAddress.ToString();
此方法可以在控制器和视图中使用,但需要指定HttpContext。