src/01_Utils/Utils.Web/Extensions/HttpContextAccessorExtensions.cs
(完整代码) 1KB// ReSharper disable once CheckNamespace
namespace Microsoft.AspNetCore.Http;
public static class HttpContextAccessorExtensions
{
/// <summary>
/// 获取客户端IP地址(包含IPv和IPv6)
/// </summary>
/// <param name="accessor"></param>
/// <returns></returns>
public static string GetIP(this IHttpContextAccessor accessor)
{
if (accessor?.HttpContext?.Connection?.RemoteIpAddress == null)
return "";
return accessor.HttpContext.Connection.RemoteIpAddress.ToString();
}
/// <summary>
/// 获取客户端IPv4地址
/// </summary>
/// <param name="accessor"></param>
/// <returns></returns>
public static string GetIPv4(this IHttpContextAccessor accessor)
{
if (accessor?.HttpContext?.Connection?.RemoteIpAddress == null)
return "";
return accessor.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();
}
/// <summary>
/// 获取客户端IPv6地址
/// </summary>
/// <param name="accessor"></param>
/// <returns></returns>
public static string GetIPv6(this IHttpContextAccessor accessor)
{
if (accessor?.HttpContext?.Connection?.RemoteIpAddress == null)
return "";
return accessor.HttpContext.Connection.RemoteIpAddress.MapToIPv6().ToString();
}
/// <summary>
/// 获取客户端UserAgent
/// </summary>
/// <param name="accessor"></param>
/// <returns></returns>
public static string GetUserAgent(this IHttpContextAccessor accessor)
{
if (accessor?.HttpContext?.Request == null)
return "";
return accessor.HttpContext.Request.Headers["User-Agent"];
}
}
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
