How can I get the user's public IP if my server is behind a router?
I'm trying:
protected string GetIPAddress()
{
System.Web.HttpContext context = System.Web.HttpContext.Current;
string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (!string.IsNullOrEmpty(ipAddress))
{
string[] addresses = ipAddress.Split(',');
if (addresses.Length != 0)
{
return addresses[0];
}
}
return context.Request.ServerVariables["REMOTE_ADDR"];
}
but all I get is the router gateway.
Apparently, REMOTE_ADDR
won't work in my case and neither will HTTP_X_FORWARDED_FOR
.
Any ideas on how to get the user's public IP in my case?
Thanks.