推薦:.Net教程之HTTP狀態(tài)碼200,301,302跳轉(zhuǎn)非常常用,在哪里都一樣,這里的一些說明和用法也如此,不止適用于asp.net,其他語言也會用得到。跳轉(zhuǎn)的目的本來很簡單,就是當(dāng)用戶或系統(tǒng)需要時從一個頁面轉(zhuǎn)向另一個頁面,但自從有了
“IP地址的長度為32位,分為4段,每段8位,用十進制數(shù)字表示,每段數(shù)字范圍為0~255,段與段之間用句點隔開。”
由此我們了解到,IP地址實際上是一個32位正整數(shù),在C#中可以使用uint類型來表示,但SQLServer數(shù)據(jù)庫里好像沒有對應(yīng)的類型;轉(zhuǎn)而使用數(shù)據(jù)庫支持的int類型的話,則會出現(xiàn)溢出的情況;因此我們做出妥協(xié):使用long(bigint)類型。
| 以下為引用的內(nèi)容: TIP: int取值范圍:-2,147,483,648 到 2,147,483,647 uint取值范圍:0 到 4,294,967,295 long取值范圍:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
那么如何將IP地址轉(zhuǎn)為整數(shù)呢?我們看到IPAddress類中有一個“[否決的]”實例屬性Address,這個屬性的確可以返回一個long值,但是測試一下,得到的數(shù)據(jù)確實這樣的:
| 以下為引用的內(nèi)容: “127.0.0.1” -> 16777343 “127.0.0.2” –> 33554559 |
的確該讓它“否決”,這樣的整數(shù)對我們來說毫無意義,我們是無法通過這樣的方法比較傳入的IP是否介于兩個IP值之間的。
那么只有自己動手了,我們將通過IPAddress類的GetAddressBytes()實例方法獲取IP的4個段的值,然后將它們組合為一個整數(shù),下面將提供這個擴展方法:
| 以下為引用的內(nèi)容: /// <summary> /// 將IP地址轉(zhuǎn)為整數(shù)形式 /// </summary> /// <returns>整數(shù)</returns> public static long 轉(zhuǎn)換為整數(shù)(this IPAddress ip) { long o = 0; foreach (byte f in ip.GetAddressBytes()) { o = (long)f << 8 * x--; } return o; |
你可以這樣使用這個擴展方法:
IPAddress.Parse("127.0.0.1").轉(zhuǎn)換為整數(shù)()
分享:解析.NET程序員 Ruby核心語法入門本文的目的是為了找出為什么.NET程序員都想學(xué)習(xí)并使用Ruby,并探索Ruby語言的核心語法。微軟的IronRuby項目為Windows平臺帶來了強大的動態(tài)語言,Ruby編程語言是一個現(xiàn)代的,面向?qū)ο蟮?/p>
新聞熱點
疑難解答
圖片精選