根绝ip限制访问

时间:2021-03-02 16:58:26

       今天有个客户要求在内网里限制下访问,根据ip端,自己就粗略写了一些,方法比较笨,不过很实用,代码如下:

 

     // 限制ip段访问
     public  static  bool CheckIp()
    {
         bool fig =  false;

         // 首先获得客户端ip
         string clientIp = GetIP();

         if (clientIp.Substring( 0, clientIp.LastIndexOf( " . ")) ==  " 10.57.70 ")
        {
             // 判断最后一位数字的范围
             int lastNum = Convert.ToInt32(clientIp.Substring(clientIp.LastIndexOf( " . ") +  1));
             if (lastNum <=  255 && lastNum >  0)
            {
                fig =  true;
            }
        }
         else  if (clientIp.Substring( 0, clientIp.LastIndexOf( " . ")) ==  " 10.57.74 ")
        {
             int lastNum = Convert.ToInt32(clientIp.Substring(clientIp.LastIndexOf( " . ") +  1));
             if (lastNum <=  191 && lastNum >=  0)
            {
                fig =  true;
            }
        }
         else  if (clientIp.Substring( 0, clientIp.LastIndexOf( " . ")) ==  " 10.57.75 ")
        {
             int lastNum = Convert.ToInt32(clientIp.Substring(clientIp.LastIndexOf( " . ") +  1));
             if (lastNum <=  63 && lastNum >=  0)
            {
                fig =  true;
            }
        }
         else  if (clientIp.Substring( 0, clientIp.LastIndexOf( " . ")) ==  " 10.57.76 ")
        {
             int lastNum = Convert.ToInt32(clientIp.Substring(clientIp.LastIndexOf( " . ") +  1));
             if (lastNum <=  63 && lastNum >=  0)
            {
                fig =  true;
            }
        }
         else  if (clientIp.Substring( 0, clientIp.LastIndexOf( " . ")) ==  " 10.57.74 ")
        {
             int lastNum = Convert.ToInt32(clientIp.Substring(clientIp.LastIndexOf( " . ") +  1));
             if (lastNum <=  191 && lastNum >=  128)
            {
                fig =  true;
            }
        }
         return fig;


    }
     public  static  string GetIP()
    {
         //  优先取得代理IP
         string userHostAddress = HttpContext.Current.Request.ServerVariables[ " HTTP_X_FORWARDED_FOR "];
         if ( string.IsNullOrEmpty(userHostAddress))
        {
             // 没有代理IP则直接取客户端IP
            userHostAddress = HttpContext.Current.Request.ServerVariables[ " REMOTE_ADDR "];
        }
         if ((userHostAddress !=  null) && !(userHostAddress ==  string.Empty))
        {
             return userHostAddress;
        }
         return  " 0.0.0.0 ";
    }

 然后在限制的页面里调用这段代码即可,呵呵,时间关系,没考虑太多,大家可以在简便一些,思路大概就是这样!