容器真实ip
parent
a8771052f3
commit
50ce20071a
|
@ -212,7 +212,7 @@ namespace IRaCIS.Core.Domain.Share
|
|||
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