Fixed: Real IP Logging when IPv4 mapped as IPv6 (#6362)

This commit is contained in:
Robin Dadswell 2021-05-30 14:21:06 +01:00 committed by GitHub
parent ba1637087e
commit 6f0d5a0583
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 2 deletions

View File

@ -95,10 +95,23 @@ namespace Radarr.Http.Extensions
}
var remoteAddress = context.Request.UserHostAddress;
IPAddress remoteIP;
IPAddress.TryParse(remoteAddress, out IPAddress remoteIP);
if (remoteIP == null)
{
return remoteAddress;
}
if (remoteIP.IsIPv4MappedToIPv6)
{
remoteIP = remoteIP.MapToIPv4();
}
remoteAddress = remoteIP.ToString();
// Only check if forwarded by a local network reverse proxy
if (IPAddress.TryParse(remoteAddress, out remoteIP) && remoteIP.IsLocalAddress())
if (remoteIP.IsLocalAddress())
{
var realIPHeader = context.Request.Headers["X-Real-IP"];
if (realIPHeader.Any())