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;
|
}
|
}
|
}
|