asp.Net(c#)中实现IP地址限制访问~

感觉可能会有点用,就直接把代码帖出来了,很简单,也就不做什么说明了 :)

  private  static Int64 GetIPNum(string ip)
  {
      Int64 num = 0;
      string[] ips = new string[4];
      ips = ip.Split('.');
      num = Convert.ToInt64(ips[0])*256*256*256+Convert.ToInt64(ips[1])*256*256+Convert.ToInt64(ips[2])*256+Convert.ToInt64(ips[3])-1;
      return num;
  }

  public static bool CheckUserIPAddress()
  {
   bool yes = false;
   SqlConnection conn = null;
   SqlCommand cmd    = null;
   SqlDataReader dr      = null;
   string sql = string.Empty;
   string bip = string.Empty;
   string eip = string.Empty;
   string UserIP = string.Empty;
 
   string connstr = System.Configuration.ConfigurationSettings.AppSettings["webmedia"];

   #region Get UserIP
   if(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"]!=null)
   {
    UserIP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
   }
   else
   {
    UserIP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
   }
   #endregion

   try
   {
    sql = string.Format("select bip,eip from [iptable] order by id");
    conn = new SqlConnection(connstr);
    conn.Open();
    cmd = new SqlCommand(sql,conn);
    dr     = cmd.ExecuteReader();
    if(dr.Read())
    {
     do
     {
      bip = dr.GetString(0);     
      eip = dr.GetString(1);
      if(GetIPNum(UserIP)>=GetIPNum(bip)&&GetIPNum(UserIP)<=GetIPNum(eip))
       return true;
     
     }while(dr.Read());
    }
   }
   catch(Exception ex)
   { System.Web.HttpContext.Current.Response.Write(ex); }
   finally
   {
    if(conn!=null)
     conn.Close();
    if(cmd!=null)
     cmd.Dispose();
    if(dr!=null)
     dr.Close();
   }
   
   return yes ;
  }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值