我现在在做一个应用,要求如下:
如果是直接链接到我的站点,就获取该客户端的外网IP;
如果是使用代理服务器打开我的站点,就要求能获取代理的IP;这样我就能够根据IP来确定某一网段的机器可以访问我的站点,禁止另外网段的访问。

解决方案 »

  1.   

    用这个试试:
    http://download.csdn.net/source/203968
      

  2.   


    //获得客户端IP
    private string GetIP()
        {
            string[] IP_Ary;
            string strIP, strIP_list;
            //通过代理服务器
            strIP_list = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
            if (strIP_list != null && strIP_list != "")
            {
                strIP_list = strIP_list.Replace("'", "");
                if (strIP_list.IndexOf(",") >= 0)
                {
                    IP_Ary = strIP_list.Split(',');
                    strIP = IP_Ary[0];
                }
                else
                {
                    strIP = strIP_list;
                }
            }
            else {
                strIP = "";
            }
            if (strIP == "")
            {
                //没有代理服务器
                strIP = Request.ServerVariables["REMOTE_ADDR"];
                strIP = strIP.Replace("'", "");
            }
            return strIP;
        } Request.UserHostAddress//获得服务器IP
      

  3.   

    System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString()
      

  4.   

    代理后的IP不可能100%得到...应该说大部分都得不到...因为只能取得透明代理服务后一级的IP...
      

  5.   

    参考:http://blog.csdn.net/ghj1976/archive/2008/02/20/2109915.aspx
      

  6.   

    上边的取服务器的IP写错了
    用这个
    Request.ServerVariables["LOCAL_ADDR"]