解讀Asp.net教程:設(shè)計(jì)IP地址屏蔽功能(4)_.Net教程
推薦:.Net教程之HTTP狀態(tài)碼200,301,302跳轉(zhuǎn)非常常用,在哪里都一樣,這里的一些說明和用法也如此,不止適用于asp.net,其他語言也會(huì)用得到。跳轉(zhuǎn)的目的本來很簡(jiǎn)單,就是當(dāng)用戶或系統(tǒng)需要時(shí)從一個(gè)頁面轉(zhuǎn)向另一個(gè)頁面,但自從有了
| 以下為引用的內(nèi)容:
/// <summary> /// 添加一個(gè)新的IP屏蔽區(qū)段 /// </summary> /// <param name="IP區(qū)段起始值">起始IP,如61.51.200.0</param> /// <param name="IP區(qū)段終止值">終止IP,如61.51.255.255</param> /// <param name="過期時(shí)間">屏蔽截止時(shí)間</param> /// <returns>ID號(hào)</returns> public static Guid 添加(string IP區(qū)段起始值, string IP區(qū)段終止值, DateTime 過期時(shí)間) { var id = Guid.NewGuid(); var sip = IPAddress.Parse(IP區(qū)段起始值).轉(zhuǎn)換為整數(shù)(); var eip = IPAddress.Parse(IP區(qū)段終止值).轉(zhuǎn)換為整數(shù)(); using (var c = new SiteMainEntities()) { //檢測(cè)是否已存在相同的IP屏蔽記錄 var a = c.IP地址屏蔽.Where(f => f.區(qū)段起始值 == sip && f.區(qū)段終止值 == eip); //如果存在則更新其過期時(shí)間 if (a.Count()>0) { var l = a.First(); if (l.過期時(shí)間 < 過期時(shí)間) l.過期時(shí)間 = 過期時(shí)間; } //不存在則正常添加一個(gè)新的屏蔽記錄 else c.AddToIP地址屏蔽(new IP地址屏蔽 { ID = id, 過期時(shí)間 = 過期時(shí)間, 區(qū)段起始值 = sip, 區(qū)段終止值 = eip }); c.SaveChanges(); } return id; } 檢測(cè)指定IP地址是否被屏蔽的代碼: /// <summary> /// 檢測(cè)指定IP地址是否已受到屏蔽 /// </summary> /// <param name="IP地址">要檢測(cè)的IP地址</param> /// <returns>是否屬于已屏蔽的IP</returns> public static bool 檢測(cè)是否被屏蔽(string IP地址) { var ip = IPAddress.Parse(IP地址).轉(zhuǎn)換為整數(shù)(); using (var c = new SiteMainEntities()) { return c.IP地址屏蔽.Count(f => f.過期時(shí)間 > DateTime.Now && ip >= f.區(qū)段起始值 && ip <= f.區(qū)段終止值) > 0; } } |
這種方案比起以往的字符串驗(yàn)證方案來說優(yōu)雅了許多,并可以提高數(shù)據(jù)庫查詢的效率,建議各位在日后的網(wǎng)站開發(fā)中都采用此方案。
分享:解析.NET程序員 Ruby核心語法入門本文的目的是為了找出為什么.NET程序員都想學(xué)習(xí)并使用Ruby,并探索Ruby語言的核心語法。 微軟的IronRuby項(xiàng)目為Windows平臺(tái)帶來了強(qiáng)大的動(dòng)態(tài)語言,Ruby編程語言是一個(gè)現(xiàn)代的,面向?qū)ο蟮?/p>
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過程實(shí)現(xiàn)分頁示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- .net中使用xsl文件作為導(dǎo)航菜單的小例子
- 使用ADO.NET2.0提升數(shù)據(jù)交互性能(5)
- 近期的幾個(gè)ASP.NET開發(fā)經(jīng)驗(yàn)總結(jié)和收集
- 淺談ASP.NET的PHP執(zhí)行速度
- 關(guān)于visual studio 2012 update 2中的新功能介紹
- 淺析C# 2010命名和可選參數(shù)的新特性
- ASP.NET及JS中的cookie基本用法
- XML文件修改節(jié)點(diǎn)屬性值(多種方法)
- FCKeditor 2.6在ASP.NET中的配置方法
- 使用ADO.NET2.0提升數(shù)據(jù)交互性能(3)
- 相關(guān)鏈接:
- 教程說明:
.Net教程-解讀Asp.net教程:設(shè)計(jì)IP地址屏蔽功能(4)
。