据我所知,HTTP_X_FORWARDED_FOR代理服务器设置了一个标头,用于标识通过代理发出HTTP请求的主机的IP地址.我听说过标题HTTP_CLIENT_IP是出于类似目的设置的.
HTTP_CLIENT_IP和之间有什么区别HTTP_X_FORWARDED_FOR?这两个变量有什么区别?
REMOTE_HOST和REMOTE_ADDR.
如果我的服务器在路由器后面,如何获取用户的公共 IP?
我想:
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"];
}
Run Code Online (Sandbox Code Playgroud)
但我得到的只是路由器网关。
显然,REMOTE_ADDR在我的情况下不起作用,也不会HTTP_X_FORWARDED_FOR。
关于如何在我的情况下获取用户的公共 IP 的任何想法?
谢谢。
我开发了一个在Azure上部署为Web应用程序的Web应用程序.
我需要获取客户端的IP地址,以便我可以使用GeoIP API来获取客户端所连接的国家/地区.
所以这是我的问题,如何在发送查看主页的请求时获取客户端的IP地址?我正在使用ASP.NET MVC.