1
0
Fork 0
mirror of https://github.com/Radarr/Radarr synced 2025-02-24 15:21:28 +00:00

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

View file

@ -95,10 +95,23 @@ public static string GetRemoteIP(this NancyContext context)
} }
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())