HttpContext.Current.Request.ServerVariables["REMOTE_ADDR "]
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
HttpContext.Current.Request.ServerVariables["HTTP_VIA"];
都可以获取IP http://nrshwm.blog.163.com/blog/static/14060694120104435759203/ 这里说了有5中代理情况下他们的区别 问题是我怎么获得正确的客户端IP呢 如果是使用高匿名代理服务器的情况 通过上面三个属性更本就获得不到嘛 还有什么其他方法吗 求高手指教 小弟在感激不尽
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
HttpContext.Current.Request.ServerVariables["HTTP_VIA"];
都可以获取IP http://nrshwm.blog.163.com/blog/static/14060694120104435759203/ 这里说了有5中代理情况下他们的区别 问题是我怎么获得正确的客户端IP呢 如果是使用高匿名代理服务器的情况 通过上面三个属性更本就获得不到嘛 还有什么其他方法吗 求高手指教 小弟在感激不尽
/// 获取客户IP
/// </summary>
/// <returns></returns>
public static string GetClientIP()
{
//Socket tcpclient = tcpListener.AcceptSocket();
//NetworkStream stream = new NetworkStream(tcpclient, System.IO.FileAccess.ReadWrite, true);
//IPEndPoint remoteIP = (IPEndPoint)(tcpclient.RemoteEndPoint); string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.UserHostAddress;
}
return result;
}
获得是那个局域网的网关IP吗
{
string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
} if (null == result || result == String.Empty)
{
result = HttpContext.Current.Request.UserHostAddress;
}
return result;
}