容器真实ip
parent
a8771052f3
commit
50ce20071a
|
@ -212,7 +212,7 @@ namespace IRaCIS.Core.Domain.Share
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
|
||||||
return _accessor?.HttpContext?.Connection.RemoteIpAddress.ToString();
|
return _accessor?.HttpContext.GetClientIP();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -341,4 +341,33 @@ namespace IRaCIS.Core.Domain.Share
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class HttpContextExtension
|
||||||
|
{
|
||||||
|
public static string GetClientIP(this HttpContext context)
|
||||||
|
{
|
||||||
|
var ip = context.Request.Headers["Cdn-Src-Ip"].FirstOrDefault();
|
||||||
|
if (!string.IsNullOrEmpty(ip))
|
||||||
|
return IpReplace(ip);
|
||||||
|
|
||||||
|
ip = context.Request.Headers["X-Forwarded-For"].FirstOrDefault();
|
||||||
|
if (!string.IsNullOrEmpty(ip))
|
||||||
|
return IpReplace(ip);
|
||||||
|
|
||||||
|
ip = context.Connection.RemoteIpAddress.ToString();
|
||||||
|
|
||||||
|
return IpReplace(ip);
|
||||||
|
}
|
||||||
|
|
||||||
|
static string IpReplace(string inip)
|
||||||
|
{
|
||||||
|
//::ffff:
|
||||||
|
//::ffff:192.168.2.131 这种IP处理
|
||||||
|
if (inip.Contains("::ffff:"))
|
||||||
|
{
|
||||||
|
inip = inip.Replace("::ffff:", "");
|
||||||
|
}
|
||||||
|
return inip;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue