解讀Asp.net教程:設計IP地址屏蔽功能(4)_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:.Net教程之HTTP狀態碼200,301,302
      跳轉非常常用,在哪里都一樣,這里的一些說明和用法也如此,不止適用于asp.net,其他語言也會用得到。跳轉的目的本來很簡單,就是當用戶或系統需要時從一個頁面轉向另一個頁面,但自從有了

      以下為引用的內容:

      /// <summary>

      /// 添加一個新的IP屏蔽區段

      /// </summary>

      /// <param name="IP區段起始值">起始IP,如61.51.200.0</param>

      /// <param name="IP區段終止值">終止IP,如61.51.255.255</param>

      /// <param name="過期時間">屏蔽截止時間</param>

      /// <returns>ID號</returns>

      public static Guid 添加(string IP區段起始值, string IP區段終止值, DateTime 過期時間)

      {

      var id = Guid.NewGuid();

      var sip = IPAddress.Parse(IP區段起始值).轉換為整數();

      var eip = IPAddress.Parse(IP區段終止值).轉換為整數();

      using (var c = new SiteMainEntities())

      {

      //檢測是否已存在相同的IP屏蔽記錄

      var a = c.IP地址屏蔽.Where(f => f.區段起始值 == sip && f.區段終止值 == eip);

      //如果存在則更新其過期時間

      if (a.Count()>0)

      {

      var l = a.First();

      if (l.過期時間 < 過期時間) l.過期時間 = 過期時間;

      }

      //不存在則正常添加一個新的屏蔽記錄

      else c.AddToIP地址屏蔽(new IP地址屏蔽 { ID = id, 過期時間 = 過期時間, 區段起始值 = sip, 區段終止值 = eip });

      c.SaveChanges();

      }

      return id;

      }

      檢測指定IP地址是否被屏蔽的代碼:

      /// <summary>

      /// 檢測指定IP地址是否已受到屏蔽

      /// </summary>

      /// <param name="IP地址">要檢測的IP地址</param>

      /// <returns>是否屬于已屏蔽的IP</returns>

      public static bool 檢測是否被屏蔽(string IP地址)

      {

      var ip = IPAddress.Parse(IP地址).轉換為整數();

      using (var c = new SiteMainEntities())

      {

      return c.IP地址屏蔽.Count(f => f.過期時間 > DateTime.Now && ip >= f.區段起始值 && ip <= f.區段終止值) > 0;

      }

      }

      這種方案比起以往的字符串驗證方案來說優雅了許多,并可以提高數據庫查詢的效率,建議各位在日后的網站開發中都采用此方案。

      分享:解析.NET程序員 Ruby核心語法入門
      本文的目的是為了找出為什么.NET程序員都想學習并使用Ruby,并探索Ruby語言的核心語法。 微軟的IronRuby項目為Windows平臺帶來了強大的動態語言,Ruby編程語言是一個現代的,面向對象的

      共4頁上一頁1234下一頁
      來源:模板無憂//所屬分類:.Net教程/更新時間:2009-08-30
      相關.Net教程