本人在做微信开发的时候.
用HttpContext.Current.Request.ServerVariables[“REMOTE_ADDR”]取出来的值和实际的ip不对应
本人确定 手机中没有用代理。
那倒底是 微信浏览器的问题,还是HttpContext.Current.Request.ServerVariables[“REMOTE_ADDR”]的问题?
头晕得很呢!
用HttpContext.Current.Request.ServerVariables[“REMOTE_ADDR”]取出来的值和实际的ip不对应
本人确定 手机中没有用代理。
那倒底是 微信浏览器的问题,还是HttpContext.Current.Request.ServerVariables[“REMOTE_ADDR”]的问题?
头晕得很呢!
解决方案
20
是你获取IP的方式有问题
/// <summary>
/// 获取请求IP
/// </summary>
/// <param name="request">请求对象</param>
/// <returns>真实请求IP</returns>
public static string GetRequestIP(HttpRequest request)
{
string result = request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (!String.IsNullOrEmpty(result))
{
if (result.IndexOf(".") == -1) return null;
if (result.IndexOf(",") == -1) return result;
return result.Split(",").FirstOrDefault(i =>
!i.StartsWith("192.168") && !i.StartsWith("10") && !i.StartsWith("172.16"));
}
result = request.ServerVariables["REMOTE_ADDR"];
return !String.IsNullOrEmpty(result)
? result
: request.UserHostAddress;
}