我具有以下功能,如果在列表中未找到该IP地址,则会检查该IP地址列表,它将引发以下错误
public Task TestIp<T>(dynamic body)
{
var httpContext = DependencyResolver.GetService<IHttpContextAccessor>()?.HttpContext;
if (!_ips.Contains(httpContext.Connection.RemoteIpAddress)) //passes ::1
throw new Exception("invalid");
}
列表示例中的一个ip是127.0.0.1,它是本地主机。但是使用上面的代码,我得到了以下IP地址,以:: 1
的形式传递这就是我尝试过的
var remoteIp = httpContext.Connection.RemoteIpAddress;
remoteIp = remoteIp.MapToIPv4()
if (!_ips.Contains(remoteIp))
throw new Exception("invalid");
但现在remoteIp = 0.0.0.1
因此,现在remoteIp与存储的127.0.0.1 != 0.0.0.1