using Microsoft.AspNetCore.Http; 
 | 
using System; 
 | 
using System.Collections.Generic; 
 | 
using System.Linq; 
 | 
using System.Text; 
 | 
using System.Threading.Tasks; 
 | 
  
 | 
namespace WIDESEAWCS_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; 
 | 
        } 
 | 
    } 
 | 
} 
 |