微信浏览器ip和真实不符

移动开发 码拜 9年前 (2016-04-08) 2019次浏览
本人在做微信开发的时候.
用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;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明微信浏览器ip和真实不符
喜欢 (0)
[1034331897@qq.com]
分享 (0)