Request.UserHostAddress.ToString();这种方法无法检测通过代理上网的机器的ip地址。但你可以通过别的方法来实现。

解决方案 »

  1.   

            #region 穿过代理服务器取远程用户真实IP地址
            /// <summary>
            /// 穿过代理服务器取远程用户真实IP地址
            /// </summary>
            /// <returns></returns>
            public static string GetIP()
            {
                try
                {
                    string IP;
                    if (HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
                    {
                        IP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
                    }
                    else
                    {
                        IP = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
                    }
                    IP = IP.Replace("::1", "127.0.0.1");                return IP;
                }
                catch
                {
                    return "0.0.0.0";
                }
            }
            #endregion