diff options
| author | Luke <luke.pulverenti@gmail.com> | 2016-01-20 13:40:51 -0500 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2016-01-20 13:40:51 -0500 |
| commit | f58503b28c2df00de7c3b00d0d80d01f13fa78f9 (patch) | |
| tree | fef61add4b915adebb8aa1c3793289b69121f9f7 /MediaBrowser.Server.Implementations/HttpServer | |
| parent | 236b5caee2797d4a8af857cea2f3859bc94d3948 (diff) | |
| parent | 17680d59b6e2de318ab5e540e39f8c0c776114c0 (diff) | |
Merge pull request #1412 from MediaBrowser/beta
merge from beta
Diffstat (limited to 'MediaBrowser.Server.Implementations/HttpServer')
| -rw-r--r-- | MediaBrowser.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpRequest.cs | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpRequest.cs b/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpRequest.cs index b3fbd2d1d..5df37118d 100644 --- a/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpRequest.cs +++ b/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/WebSocketSharpRequest.cs @@ -136,11 +136,27 @@ namespace MediaBrowser.Server.Implementations.HttpServer.SocketSharp { return remoteIp ?? (remoteIp = XForwardedFor ?? - (XRealIp ?? - ((request.RemoteEndPoint != null) ? request.RemoteEndPoint.Address.ToString() : null))); + (NormalizeIp(XRealIp) ?? + ((request.RemoteEndPoint != null) ? NormalizeIp(request.RemoteEndPoint.Address.ToString()) : null))); } } + private string NormalizeIp(string ip) + { + if (!string.IsNullOrWhiteSpace(ip)) + { + // Handle ipv4 mapped to ipv6 + const string srch = "::ffff:"; + var index = ip.IndexOf(srch, StringComparison.OrdinalIgnoreCase); + if (index == 0) + { + ip = ip.Substring(srch.Length); + } + } + + return ip; + } + public bool IsSecureConnection { get { return request.IsSecureConnection || XForwardedProtocol == "https"; } |
