对比新文件 |
| | |
| | | 锘縰sing Microsoft.AspNetCore.Http; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WIDESEA_Core.Helper |
| | | { |
| | | public static class HttpContextHelper |
| | | { |
| | | public static string GetUserIp(this HttpContext context) |
| | | { |
| | | string realIP = null; |
| | | string forwarded = null; |
| | | string remoteIpAddress = context.Connection.RemoteIpAddress.ToString(); |
| | | if (context.Request.Headers.ContainsKey("X-Real-IP")) |
| | | { |
| | | realIP = context.Request.Headers["X-Real-IP"].ToString(); |
| | | if (realIP != remoteIpAddress) |
| | | { |
| | | remoteIpAddress = realIP; |
| | | } |
| | | } |
| | | if (context.Request.Headers.ContainsKey("X-Forwarded-For")) |
| | | { |
| | | forwarded = context.Request.Headers["X-Forwarded-For"].ToString(); |
| | | if (forwarded != remoteIpAddress) |
| | | { |
| | | remoteIpAddress = forwarded; |
| | | } |
| | | } |
| | | return remoteIpAddress; |
| | | } |
| | | } |
| | | } |