解讀Asp.net教程:設計IP地址屏蔽功能(2)_.Net教程
推薦:.Net教程之HTTP狀態(tài)碼200,301,302跳轉非常常用,在哪里都一樣,這里的一些說明和用法也如此,不止適用于asp.net,其他語言也會用得到。跳轉的目的本來很簡單,就是當用戶或系統(tǒng)需要時從一個頁面轉向另一個頁面,但自從有了
這里還有一個用于逆轉換的擴展方法,用于將long轉回IPAddress:
| 以下為引用的內容:
/// <summary> /// 將整數(shù)轉為IP地址 /// </summary> /// <returns>IP地址</returns> public static IPAddress 轉換為IP地址(this long l) { for (int i = 0; i < 4; i ) { b[3 - i] = (byte)(l >> 8 * i & 255); } return new IPAddress(b); } |
這樣我們就可以通過計算得到正確并有意義的整數(shù)了:
| 以下為引用的內容:
“127.0.0.1” -> 2130706433 “127.0.0.2” –> 2130706434 |
OK,確立了方案核心,下面開始設計SQLServer數(shù)據(jù)表:

這樣設計后,在添加時將起始和終止IP地址轉為long類型并存入,并指定一個過期時間。
在驗證時只需要獲取所有未過期的條目,比較傳入的IP地址是否介于起始值和終止值之間即可。
以往通過字符串存儲和驗證的方案中,屏蔽時要么屏蔽一個精確的IP地址,要么就屏蔽一段或兩段IP,如“192.168.*.*”,要想屏蔽“192.168.1.200”到“192.168.4.64”之間的IP的話,將會非常麻煩;
而我們這樣設計就可以輕松實現(xiàn):“192.168.1.200”在數(shù)據(jù)庫里存儲的是“3232235976”,“192.168.4.64”在數(shù)據(jù)庫中是“3232236608”,即使使用肉眼也能極快地判斷傳入的地址是否介于它們之間,更不要說計算機查詢了。
分享:解析.NET程序員 Ruby核心語法入門本文的目的是為了找出為什么.NET程序員都想學習并使用Ruby,并探索Ruby語言的核心語法。 微軟的IronRuby項目為Windows平臺帶來了強大的動態(tài)語言,Ruby編程語言是一個現(xiàn)代的,面向對象的
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實例(可帶附件)
- js實現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進度條的實現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現(xiàn)分頁示例代碼
- 相關鏈接:
- 教程說明:
.Net教程-解讀Asp.net教程:設計IP地址屏蔽功能(2)
。