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

pull/6344/head
Robin Dadswell 3 years ago committed by GitHub
parent ba1637087e
commit 6f0d5a0583
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -95,10 +95,23 @@ namespace Radarr.Http.Extensions
} }
var remoteAddress = context.Request.UserHostAddress; 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 // 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"]; var realIPHeader = context.Request.Headers["X-Real-IP"];
if (realIPHeader.Any()) if (realIPHeader.Any())

Loading…
Cancel
Save